ESP32-S3 控制 红外遥控
ESP32-S3 控制红外遥控实验
红外遥控器是日常生活中常见的控制设备,广泛应用于家电、智能小车和机器人等项目中。本文介绍如何用 ESP32-S3 接收红外遥控器信号,并在串口打印对应的控制码。
一、实验名称
红外遥控实验
二、接线说明
| 红外接收模块 | ESP32-S3开发板 |
|---|---|
| IR | 10 |
| VCC | 3.3V 或 5V |
| GND | GND |
注意事项:
- 红外接收模块可以使用 3.3V 或 5V 电源,具体参考模块规格。
- 安装红外库:IRremoteESP8266-master.zip,方法:项目 → 导入库 → 添加 .ZIP 库。
三、实验现象
程序下载成功后,打开串口监视器,按下遥控器按键,串口会输出对应的红外编码(十六进制数)。
每个按键都有唯一编码,可以用于智能家居控制或小车控制。
四、完整代码示例
#include "public.h"
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
// 红外接收引脚
#define kRecvPin 10
// 创建红外接收对象
IRrecv irrecv(kRecvPin);
decode_results results;
void setup() {
Serial.begin(115200); // 初始化串口
irrecv.enableIRIn(); // 启动红外接收
}
void loop() {
if (irrecv.decode(&results)) {
// 打印红外码(十六进制)
serialPrintUint64(results.value, HEX);
Serial.println("");
irrecv.resume(); // 接收下一个值
}
delay(100);
}
五、代码讲解
- 引脚定义
#define kRecvPin 10
- IR:红外接收模块的数据引脚,接 ESP32 的 GPIO10。
- 创建红外接收对象
IRrecv irrecv(kRecvPin);
decode_results results;
irrecv:红外接收器对象,用于接收遥控器信号。results:存储接收到的红外信号数据。
- 初始化串口和红外接收
Serial.begin(115200);
irrecv.enableIRIn();
- 初始化串口,用于输出控制码。
- 启动红外接收功能。
- 读取红外信号并打印
if (irrecv.decode(&results)) {
serialPrintUint64(results.value, HEX);
Serial.println("");
irrecv.resume();
}
- 判断是否接收到信号。
serialPrintUint64:将遥控器信号以十六进制输出。irrecv.resume():准备接收下一个信号。
- 延时
delay(100):防止串口输出过快。
六、实验效果
- 打开串口监视器,波特率设置为 115200。
- 按下遥控器按键,串口显示类似:
1FE48B7
1FE58A7
1FE7887
- 不同按键输出不同编码,可用于控制 LED、小车或其他外设。
七、进阶扩展
-
控制 LED 灯
根据按键编码控制不同颜色或闪烁模式的 LED。 -
小车遥控
使用遥控器实现前进、后退、左转、右转控制。 -
智能家居
红外控制家电,如风扇、电视,实现远程控制功能。
八、总结
通过本实验,学习了:
- ESP32-S3 接收红外信号的方法
- 使用
IRremoteESP8266库简化信号解析 - 串口输出红外编码,用于其他控制逻辑
本实验是 智能家居、机器人遥控 项目的基础,结合其他传感器和外设可以实现丰富的功能。

浙公网安备 33010602011771号