注意事项/前要
在本项目中,使用ESP32开发板和红外接收模块来接收红外遥控器信号,并在串口中打印接收到的按键信息。
注意,本项目使用的IRremote库为2.6旧版本,如果使用高版本会导致This version is no longer supported!提示
红外接收模块为简单封装模块,引脚有三个,参考时可以根据具体型号进行接线。
模块与开发板接线
模块引脚 | Arduino ESP32 引脚 |
VCC | 3.3V 、5V |
GND | GND |
OUT | GPIO 15 |
完整代码
- 本项目使用的IRremote库为2.6旧版本
- 如果使用高版本会导致This version is no longer supported!提示
- FFFFFFFF信号为长按
- 在自己项目中,可以将变量赋值
results.value
#include <IRremote.h>
// 定义红外接收引脚
const int RECV_PIN = 15; // ESP32的GPIO 15引脚
IRrecv irrecv(RECV_PIN); // 创建IRrecv对象
decode_results results; // 创建解码结果对象
void setup() {
Serial.begin(115200); // 初始化串口通信
irrecv.enableIRIn(); // 启用红外接收
Serial.println("红外接收器已启动,准备接收信号...");
Serial.println("羡林i版权所有.");
}
void loop() {
if (irrecv.decode(&results)) { // 检测到红外信号
Serial.print("接收到的红外编码:");
Serial.println(results.value, HEX); // 打印接收到的红外编码,十六进制格式
irrecv.resume(); // 接收下一个信号
}
delay(100); // 延时100毫秒,避免串口输出过快
}
开发环境:Arduino IDE、ESP32 Dev Module
代码辅助:ChatGPT-4o
作者:羡林i