美文网首页嵌入式
Arduino 红外遥控

Arduino 红外遥控

作者: 老中医167788 | 来源:发表于2022-07-05 10:50 被阅读0次
    红外接收头

    从左至右分别为OUT、GND、VCC

    实验一

    读取遥控器按键值通过串口发送值电脑。

    接线

    Nano 功能 接收头
    D9 数字接口(模拟正极) VCC
    D10 数字接口(模拟负极) GND
    D11 数字接口 OUT

    代码

    #include<IRremote.h>
    
    int PIN_RECV = 11;          // 红外数据接口。
    IRrecv irrecv(PIN_RECV);
    decode_results results;     // 储存解码结果
    int IRVCC = 9;
    int IRGND = 10;
    
    void setup()
    {
        Serial.begin(9600);
        irrecv.enableIRIn();            // 初始化红外解码
        pinMode(IRVCC, OUTPUT);
        pinMode(IRGND, OUTPUT);
    
        digitalWrite(IRVCC, HIGH);
        digitalWrite(IRGND, LOW);
    }
    
    void loop()
    {
        if (irrecv.decode())
        {
            auto val = irrecv.decodedIRData.decodedRawData;
            Serial.println(val, HEX);
            irrecv.resume();           // 接受下一个编码
        }
        delay(500);
    }
    

    重点说明

    irrecv.decode() 接收到红外线信号,返回1反之0
    irrecv.decodedIRData.decodedRawData; 当前按键编码值
    irrecv.decodedIRData.protocol 遥控器协议值
    
    串口输出的值

    以上串口输出的值有0是因为老中医长按按键引起的 如果长按某个键它就一直输出0 如果是短按那就是不同的键代表不通的值。

    演示.jpg

    以上演示图 我用的红外接收头自带了个PCB,PCB上带了个102ohm电阻而实际上跟自己外接电阻没什么屌区别 就是用来防止红外接收头的电流过高烧掉 另外还带了个贴片式led用来响应是否收到红外信号 高电平时亮起低电平熄灭

    相关文章

      网友评论

        本文标题:Arduino 红外遥控

        本文链接:https://www.haomeiwen.com/subject/idcjbrtx.html