红外遥控接收发射原理及ESP8266实现

--作者:燕十三(flyingcys)

-- blog:http://blog.csdn.net/flyingcys

--QQ:294102238

红外遥控是利用近红外光进行数据传输的一种控制方式。近红外光波长0.76um~1.5um ,红外遥控收发器件波长一般为 0.8um~0.94um ,具有传输效率高,成本低,电路实现简单,抗干扰强等特点,在家用电器上被广泛使用。

红外遥控一般有发射和接收两部分组成,发射元件为红外发射管,接收一般采用一体化红外接收头,但发射载波频率与接收头固定频率需一致才能正确接收。


一、发射

1. 调制

红外遥控是以调制方式发射数据,将数据调制到固定的载波上发送,调制发送抗干扰能力更强,传送距离也更远。红外发送首先要解决的就是调制问题。

目前主流的调制方式有PPMPWM

  • PPM:脉冲位置调制,调制脉冲宽度不变,用脉冲间隔来区分01。如下图所示,脉冲宽度不变都是560us,脉冲间隔改变。逻辑1总时间为2.25ms,逻辑0中时间长度为1.12ms

 

1PPM调制

  • PWM:脉冲宽度调制,脉冲间隔不变,调制脉冲宽度改变。如下图所示,脉冲间隔 600us,脉冲宽度不同。逻辑1高电平时间为1.2ms,逻辑0高电平时间为0.6ms

 

2PWM调制

调制载波频率一般在30KHz60KHz之间,常用的载波有33K36K36.6K38K40K56K等,其中38K使用最多。

常用占空比有1/31/21/3最多。

2. 红外传输协议

常用的红外传输协议有ITT协议、NEC协议、Nokia NRC协议、Sharp协议、Philips RC-5RC-6 RECS-80协议、Sony SIRC协议等,其中最常见的为NEC协议。

常见NEC协议分析:

载波38KHz,逻辑12.25ms,脉冲时间560us;逻辑01.12ms,脉冲时间560us

 

3NEC逻辑’0’与逻辑’1’

l 协议格式

 

4NEC红外载波发送协议

(1) 首先发送9ms的高电平脉冲

(2) 然后发送4.5ms的低电平

(3) 接下来是8bit的地址码(低位在前)

(4) 然后是8bit的地址反码,用于检验地址码是否出错

(5) 接下来的是8bit的命令码(低位在前)

(6) 然后是8bit的命令反码,用于检验命令码是否出错。

l 重复码

 

5NEC重复发送载波协议

如果一直按着一个键,将以110ms为周期发送重复码,重复码由9ms高电平、2.25ms低电平及560us高电平组成。

 

6NEC重复码

3. 编码

虽然不同协议都对各自的协议格式做了不同定义,但总体而言还是有高低电平组成的一串数据。

对于红外发射,就是按照协议规定高电平时间内,在红外输出口输出固定频率载波;低电平则直接输出低。红外接收头接到载波时输出高电平,没有载波时输出低电平,完成数据解码。

 

7NEC解码后协议

二、接收

红外接收常采用一体化红外接收头,集红外接收、放大、滤波、比较器输出等功能,并输出MCU可识别的TTL信号的。常用的一体化红外接收头有SCR638HS0038VS1838等。

      

SCR638


HS0038

8:一体化接收头

 

红外接收应用电路图:

 

9:红外接收典型应用

 

三、ESP8266红外发送与接收

ESP8266定义了1IR红外遥控接口,IR红外遥控接口由软件实现,接口定义如下:

 

10ESP8266红外管脚定义

1. 发送

ESP8266上用于发送的载波可以通过以下方式实现:

1) I2SBCK

2) WS管脚产生

3) GPIO中的sigma-delta功能在任意GPIO口产生载波。

其中sigma-delta产生的载波占空比约为20%,推荐使用MTMS管脚(GPIO14),可产生准确的38KHz且占空比为50%的标准方波。

2. 接收

红外接收功能通过GPIO的边沿中断实现,读取系统时间,将2次时间相减可以得到波形持续时间,然后通过软件逻辑实现红外协议处理。

 

  • 23
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值