ESP32红外遥控(RMT)(1)

ESP32 IDF库中的RMT驱动

RMT(Remote Control Module)驱动是ESP-IDF库中的一个重要组成部分,它主要用于处理远程控制编码和解码。

一、红外遥控器介绍

1. 红外遥控技术介绍

红外遥控是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点。它被诸多电子设备特别是家用电器广泛采用,并越来越多地应用到计算机和手机系统中。

红外遥控系统由发射和接收两大部分组成,应用编码/解码专用集成电路芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

2. 红外器件特性

红外遥控器主要由红外发射器和红外接收器两部分组成。

(1)红外发射器

红外发射器通常是一个红外LED,它可以发射红外光。当电流通过LED时,它会发射出红外光。红外LED的发射波长通常在940nm左右,这是人眼无法看到的红外光。

(2)红外接收器

红外接收器是一个光电二极管,它可以将接收到的红外光转换为电信号。红外接收器通常有一个滤波器,可以过滤掉大部分的环境光,只接收特定频率的红外光。

红外发射管也是属于二极管类,红外发射电路通常使用三极管控制红外发射器的导通或者截止。在导通的时候,红外发射管会发射出红外光;反之,就不会发射出红外光。虽然我们用肉眼看不到红外光,但是我们借助手机摄像头就能看到红外光。红外接收管的特性是当接收到红外载波信号时,OUT引脚输出低电平;假如没有接收到红外载波信号时,OUT引脚输出高电平

红外载波信号其实就是由一个个红外载波周期组成。在频率为38KHz下,红外载波周期约等于 26.3us(1s / 38 KHz ≈ 26.3 us)。

在一个红外载波发射周期里,发射红外光时间8.77us 和不发射红外光17.53us,发射红外光的占空比一般为1/3。相对地,整个周期内不发射红外光,就是载波不发射周期。在红外遥控器内已经把载波和不载波信号处理好,我们

需要做的就是识别遥控器按键发射出的信号,信号也是遵循某种协议的。在红外遥控器内已经把载波和不载波信号处理好,我们需要做的就是识别遥控器按键发射出的信号,信号也是遵循某种协议的。

这里推荐一个视频可以快速了解红外控制器件:

一帧红外遥控信号,竟如此复杂,超乎你的想象!红外遥控的工作原理!_哔哩哔哩_bilibili

3. 红外编解码协议介绍

红外遥控器通常使用特定的编解码协议来发送和接收数据。目前广泛使用的是:

  • PWM(脉冲宽度调制)的NEC协议
  • Philips PPM(脉冲位置调制)的RC-5协议

这里以NEC为主讲解ESP32红外遥控(RMT)。

NEC协议,其特征如下:

1)8位地址和8位指令(数据)长度;

2)地址和命令(数据 )2次传输(确保可靠性);

3)PWM脉冲位置调制,以发射红外载波的占比代表“0”和“1”;

4)载波频率为38KHz;

5)位时间为1.125ms或2.25ms。

在NEC协议中,如何为协议中的数据‘0’或者‘1’?这里分开红外接收器和红外发射器

红外发射器

  • 发送协议数据‘0’ = 发射载波信号 560us + 不发射载波信号 560us
  • 发送协议数据‘1’ = 发射载波信号 560us + 不发射载波信号 1680us

红外发射器的位定义如下图所示:

🚨需要注意的是红外编码发送的时候,并不单单是通过高低电平发送的,是在38khz的载波下进行发送的。

红外接收器

  • 接收到协议数据‘0’ = 560us 低电平 + 560us 高电平
  • 接收到协议数据‘1’ = 560us 低电平 + 1680us 高电平

NEC协议的数据格式包括以下几个部分:

(1)同步码

这是一个9ms的低电平+4.5ms的高电平,用于同步。

(2)地址码和地址反码

这是一个8位数据格式,低位在前,高位在后。

(3)控制码和控制反码

这部分用于表示具体的控制命令。

如果你长时间按住遥控按钮,使用NEC协议的红外遥控器将会发射一个以110ms为周期的重复码。每一次用户按下遥控器按钮,遥控器在发送一次指令码后,就不会再发送指令码了,而是发送一段重复码。

更多内容请看下回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值