实物连接图:
红外遥控器
LED
红外接收器
Arduino mega
代码
#include <IRremote.hpp> // 引入新的IRremote库
const int RECV_PIN = 11; // 定义红外接收器引脚
const int LED = 8; // 定义LED引脚
bool ledState = false; // LED的初始状态为关闭
int brightness = 0; // LED的初始亮度为0
void setup() {
Serial.begin(9600); // 初始化串口通讯,波特率为9600
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // 启动红外解码,并启用LED反馈
pinMode(LED, OUTPUT); // 设置LED引脚为输出模式
}
void loop() {
if (IrReceiver.decode()) { // 判断是否接收到红外码
unsigned long value = IrReceiver.decodedIRData.decodedRawData; // 获取解码后的红外码
switch (value) {
case 0xBA45FF00:
Serial.println("OPEN");
ledState = true; // 打开LED
brightness = 255; // 设置LED最大亮度
break;
case 0xB946FF00:
Serial.println("MODE");
ledState = false; // 关闭LED
brightness = 0; // 设置LED最小亮度
break;
case 0xB847FF00:
Serial.println("jingyin");
break;
case 0xF30CFF00:
Serial.println("1");
brightness = 51; // 设置LED亮度为20%
break;
case 0xE718FF00:
Serial.println("2");
brightness = 102; // 设置LED亮度为40%
break;
case 0xA15EFF00:
Serial.println("3");
brightness = 160; // 设置LED亮度为60%
break;
case 0xF708FF00:
Serial.println("4");
brightness = 210; // 设置LED亮度为80%
break;
case 0xE31CFF00:
Serial.println("5");
brightness = 255; // 设置LED亮度为100%
break;
default:
Serial.println("Unknown");
break; // 添加默认情况处理
}
analogWrite(LED, brightness); // 设置LED的亮度
IrReceiver.resume(); // 等待接收下一组信号
}
}