Arduino ESP32红外
时间: 2025-07-10 13:46:53 浏览: 14
### Arduino ESP32 红外遥控教程及代码示例
#### 一、硬件准备
为了实现ESP32的红外功能,需要以下硬件组件:
- **ESP32开发板**:支持WiFi和蓝牙通信,内置GPIO接口用于控制外部设备[^1]。
- **红外接收头(如TSOP4838)**:负责接收红外信号并将其转换为电信号。
- **红外发射二极管**:用于发送红外信号到目标设备。
#### 二、软件环境搭建
在使用ESP32进行红外遥控前,需先安装必要的库文件。具体操作如下:
1. 打开Arduino IDE,在`工具 -> 库管理`中搜索`IRremoteESP8266`库,并完成安装[^2]。
2. 安装完成后,确保IDE能够识别ESP32开发板。如果尚未配置,请按照官方文档设置开发板支持包。
#### 三、红外接收功能实现
以下是通过ESP32读取红外遥控按键值的代码示例:
```cpp
#include <IRremoteESP8266.h>
#include <IRrecv.h>
const uint16_t PIN_IR_RECEIVE = 5; // GPIO5 连接红外接收头
IRrecv irrecv(PIN_IR_RECEIVE);
decode_results results;
void setup() {
Serial.begin(115200);
irrecv.enableIRIn(); // 启动红外接收
}
void loop() {
if (irrecv.decode(&results)) { // 如果检测到有效信号
Serial.print("Received: ");
Serial.println(results.value, HEX); // 输出十六进制编码
irrecv.resume(); // 继续监听下一个信号
}
}
```
上述程序会持续监测红外接收端口,并将收到的数据打印至串口监视器中。
#### 四、红外发送功能实现
下面是一个简单的例子,展示如何利用ESP32模拟发送特定协议的红外信号:
```cpp
#include <IRremoteESP8266.h>
#include <IRsend.h>
const uint16_t PIN_IR_SEND = 4; // GPIO4 连接红外发射LED
IRsend irsend(PIN_IR_SEND);
void setup() {}
void loop() {
delay(5000); // 每隔5秒触发一次
irsend.sendNEC(0xFFFFFFFF, 32); // 发送一个标准NEC码
Serial.println("Sent NEC code");
}
```
此脚本每隔五秒钟向指定方向广播一条通用型红外命令。
#### 五、注意事项
- 使用过程中应确认所选引脚是否与其他外围电路冲突。
- 不同品牌型号的红外遥控器可能采用不同的数据传输协议,请查阅对应产品手册获取更多信息[^3]。
阅读全文
相关推荐


















