上周日小哈哥体验了一下当主播的感觉,在B站直播了一下ESP8266如何快速连上阿里云物联网平台,演示了一下整个开发过程。
一个网友在做LD3320+STM32+红外学习模块组合的实例,实现语音控制红外遥控功能的时候,遇到了困难,给我邮来一个红外学习模块,我做了一个实例,周二晚上为了演示方便,又开了一次直播,感觉当主播的感觉还不错的。
这个红外学习模块玩起来还不错,利用它可以把我家的电视、空调控制起来。
今天给大家分享一下这个模块的调试过程,如果大家手里没有USB转TTL模块,可以利用咱们的最小系统核心板,自己制作一个USB转TTL模块。
IR03T红外学习模块
功能特点
通信波特率可修改,默认为9600bps,可选4800、57600、19200、115200。
通信协议为5字节指令,操作简单,自带存储,可实现掉电保存红外信号,调用简单。
可扩展并联6个红外发射头,实现全方位控制。
远距离学习解码、远距离控制,发射距离远达10米。
支持读出236字节红外数据(非原码)及写入红外数据,方便于量产和修改。
支持修改指令帧头,可结合RS485实现组网,对多个模块进行分别控制。
具备3路手动触发口,带专用脱机学习按钮,可脱离串口实现按键触发发送红外信号。
常用应用方案
- 单片机+IR03T模块--->实现智能家居红外控制家电WiFi串口模块+IR03T模块--->实现远程控制红外电器USB转TTL串口+IR03T模块--->实现电脑控制红外设备蓝牙串口模块+IR03T模块--->实现手机、平板控制红外设备
接线
红外学习模块与USB转TTL模块相连
红外学习模块与最小系统板相连
注意:
有的USB转TTL模块可能跟这个红外学习模块不兼容,如果调试过程中遇到困难,可以换一种USB转TTL模块再尝试一下。
上面两种方式,我都测试过,完全没有问题。
测试流程(电脑端)
- 安装USB转TTL驱动;将红外模块与USB转TTL连接并插入电脑。(注意RXD接TXD);打开电脑串口调试助手,选择好波特率和COM口后打开串口;发送学习指令
FA FD 01 00 DF
,指示灯熄灭 ,进入学习状态;遥控器距离20cm,对准模块的红外接收头,按下要解码的按键,指示灯亮起,学习完成;如要利用红外模块发射红外信号,只需要用对应通道的发射指令FA FD 02 00 DF
,通过串口助手软件发送给模块,即可还原出对应的红外信号。
串口通信协议
进入通道学习状态
FA FD 01 xx DF
==> 反馈A1,学习完成后反馈A2
其中:xx 为通道号,范围00~FF,代表将当前信号存储到某个位置。
例如:
FA FD 01 05 DF
-- 将当前红外信号学习并存储于5号通道。
操作的时候,先发送上述指令,串口助手收到反馈A1,然后再将待学习的红外信号,对着模块的红外接收头,发射红外信号,学习完毕或超时,串口助手中会收到反馈A2。
指令的帧头使用A1
也可以,即 A1 FD 01 00 DF
也可以被红外学习模块正确解析的。
指定通道发射
FA FD 02 xx DF
==> 反馈F1
其中:xx 为通道号,范围00~FF,代表将当前位置的数据还原为红外信号发出。
例如:
FA FD 02 05 DF
-- 发射5号通道存储的红外信号。
修改波特率
FA FD 03 xx DF
==> 反馈A3
其中:xx 为波特率序号,范围1~5,不同序号对应不同波特率。
例如:
波特率序号 | 波特率 |
---|---|
01 | 4800 |
02 | 9600(默认) |
03 | 19200 |
04 | 57600 |
05 | 115200 |
修改帧头
FA FD 04 xx DF
==> 反馈A4
其中:xx 为修改后的指令帧头,范围:00~FF,FA为通用帧头不可修改,修改的是备用帧头A1。
举例:
FA FD 04 01 DF
-- 将备用帧头改为01。
FA FD 04 A1 DF
-- 将备用帧头改为A1。
注意:帧头修改一般用于RS485组网功能,一个主控连接多个红外模块,根据不同的帧头进行区分。
普通用户一般只用到1个红外的场景,一般不需要修改。
擦除指定通道记录
FA FD 05 xx DF
==> 反馈A5
其中:xx 为通道号,范围00~FF,代表要擦除信号的通道位置。
举例:
FA FD 05 00 DF
-- 将通道号0的信号擦除。
FA FD 05 0A DF
-- 将通道号10的信号擦除。
注意:每个通道学习时,不需要先做擦除操作,可以重复写入,新写入的数据将覆盖原有数据。
读出指定通道数据
FA FD 06 xx DF
==> 反馈236字节
其中:xx 为通道号,范围00~FF,将当前信号数据输出到串口。
举例:
FA FD 06 00 DF
-- 将通道号0的236字节数据由串口输出。
FA FD 06 11 DF
-- 将通道号17的236字节数据由串口输出。
输出格式为:FA FD 07 xx 230字节数据 DF DF
其中:xx 为通道号,范围00~FF。
例如:读取通道00内的数据:
例如:读取通道01内的数据:
写入指定通道数据
FA FD 07 xx '230字节数据' DF DF
==> 反馈A7
其中:xx 为通道号,范围00~FF;将当前信号数据写入到通道位置;
擦除所有通道记录
FA FD 0F 0F DF
==> 反馈1F,代表开始擦除,约13秒后,反馈0F,代表擦除完成。
其中:xx 为通道号,范围00~FF,将存储的所有信号数据擦除。