上周日小哈哥体验了一下当主播的感觉,在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,将存储的所有信号数据擦除。