当前位置:首页Arduino > 正文

Arduino如何用红外遥控器控制多个LED灯

作者:野牛程序员:2023-08-18 20:38:59Arduino阅读 2837

要使用红外遥控器来控制多个LED灯,可以在前面的示例基础上进行扩展。以下是一个演示如何在Arduino上使用红外遥控器来控制多个LED灯的示例:

首先,确保你已经安装了IRremote库。可以在Arduino IDE中通过 "Sketch" > "Include Library" > "Manage Libraries" 来搜索并安装该库。

然后,上传以下示例代码到你的Arduino开发板上:

#include <IRremote.h>

const int RECV_PIN = 11;  // 红外接收头连接的引脚
IRrecv irrecv(RECV_PIN);
decode_results results;

const int ledPins[] = {2, 3, 4};  // LED引脚数组
const int numLEDs = sizeof(ledPins) / sizeof(ledPins[0]);

void setup() {
  for (int i = 0; i < numLEDs; i++) {
    pinMode(ledPins[i], OUTPUT);  // 将LED引脚设置为输出模式
  }
  irrecv.enableIRIn();  // 启用红外接收模块
}

void loop() {
  if (irrecv.decode(&results)) {
    unsigned long codeValue = results.value;
    
    // 使用不同的红外码值来控制不同的LED灯
    if (codeValue == 0xE0E040BF) {  // 示例红外码值,你需要根据你的遥控器设置进行修改
      digitalWrite(ledPins[0], HIGH);   // 打开第一个LED
    } else if (codeValue == 0xE0E0E01F) {
      digitalWrite(ledPins[0], LOW);    // 关闭第一个LED
    } else if (codeValue == 0xE0E020DF) {
      digitalWrite(ledPins[1], HIGH);   // 打开第二个LED
    } else if (codeValue == 0xE0E0D02F) {
      digitalWrite(ledPins[1], LOW);    // 关闭第二个LED
    } else if (codeValue == 0xE0E0609F) {
      digitalWrite(ledPins[2], HIGH);   // 打开第三个LED
    } else if (codeValue == 0xE0E010EF) {
      digitalWrite(ledPins[2], LOW);    // 关闭第三个LED
    }
    
    irrecv.resume();  // 继续接收下一个信号
  }
}

将这段代码上传到Arduino开发板上,并连接多个LED到指定的引脚(这里使用D2、D3、D4),以及红外接收模块的输出引脚到指定的引脚(这里是D11)。然后打开Arduino IDE的串口监视器(Tools > Serial Monitor),设置波特率为9600。

在串口监视器中,可以看到每次按下红外遥控器的按键时,代码会根据接收到的红外码值来控制不同的LED灯的开关状态。示例中的红外码值是根据NEC红外协议的示例值设置的,需要根据遥控器的红外码值来进行相应的设置。

请注意,示例中使用了一个LED数组来控制多个LED,每个红外码值都对应于特定的LED的开关操作。可以根据需要添加更多的LED和对应的红外码值。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击