红外接收和遥控

红外接收管是直接将电能转化为近红外光的器件,属于二极管类。红外接收头是一种接收、放大、解调装置,内部集成电路已完成解调,输出是数字信号。
创客 传感器 乐高拼搭兼容

示例程序

Arduino示例,通过红外遥控器的“1”和“2”键控制LED灯的亮和灭

#include <IRremote.h>

#define LED_PIN    4
#define IR_PIN       5

IRrecv irrecv(IR_PIN);

void setup() {
    Serial.begin(115200);
    pinMode(LED_PIN, OUTPUT);
    // 启用红外接收
    irrecv.enableIRIn();
}

void loop() {
    
    if (irrecv.decode()) {
        // 有按键被按下
        // 第1步:取得按键信息(包含按键值、编码类型等)
        const IRData *irData = &irrecv.decodedIRData;
        Serial.printf("ir code: %02X\n", irData->decodedRawData);

        // 第2步:根据按键值做不同处理
        switch (irData->decodedRawData) {
            case 0xF30CFF00:  // 遥控器上“1”键
                digitalWrite(LED_PIN, HIGH);
                break;
            case 0xE718FF00:  // 遥控器上“2”键 
                digitalWrite(LED_PIN, LOW);
                break;
        }

        // 第3步:恢复处理,为下一次取值做准备
        irrecv.resume();
    }

    delay(10);
}

原理图

06