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

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

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

一、发射

1. 调制

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

目前主流的调制方式有PPM和PWM。

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

图1:PPM调制

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

图2:PWM调制

调制载波频率一般在30KHz到60KHz之间,常用的载波有33K,36K,36.6K,38K,40K,56K等,其中38K使用最多。

常用占空比有1/3、1/2,1/3最多。

2. 红外传输协议

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

常见NEC协议分析:

l 载波38KHz,逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us

 

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

l 协议格式

 

图4:NEC红外载波发送协议

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

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

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

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

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

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

l 重复码

 

图5:NEC重复发送载波协议

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

 

图6:NEC重复码

3. 编码

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

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

 

图7:NEC解码后协议

二、接收

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

      

SCR638

HS0038

图8:一体化接收头

红外接收应用电路图:

 

图9:红外接收典型应用

 

三、ESP8266红外发送与接收

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

 

图10:ESP8266红外管脚定义

1. 发送

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

1) I2S的BCK

2) WS管脚产生

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

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

2. 接收

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


涂鸦物联网足迹
微信号“Tuya1077”,回复“行业报告”,获取各行业智能化解决方案。
15 声望
9 粉丝
0 条评论
推荐阅读
留给我们的时间不多了,地球不能再热了!
针对“全球变暖”,人类共同商量出一个对策——碳中和。“碳中和”概念最早于 1997 年提出,近几年热度不断上升。虽然听起来有些陌生,但靠字面意思就能理解概念的核心:“中和”即酸碱中和的“中和”,也就是在一段时间内...

IoT云工坊阅读 906

封面图
定档 6 月!SegmentFault AI Hackathon 杭州站启动
AI 掀起巨浪,你我应是冲浪者。创业团队、互联网大厂、国家队的大模型角力如火如荼,各类开源模型、垂直模型的出现也推动着越来越多 AGI 应用的陆续落地。

SegmentFault思否7阅读 54.6k评论 2

封面图
使用 🧨 Diffusers 实现 ControlNet 高速推理
自从 Stable Diffusion 风靡全球以来,人们一直在寻求如何更好地控制生成过程的方法。ControlNet 提供了一个简单的迁移学习方法,能够允许用户在很大程度上自定义生成过程。通过 ControlNet,用户可以轻松地使用...

HuggingFace4阅读 3.4k

封面图
用 AI 生成漂亮小姐姐(一)——Stable Diffusion 小白搭建教程
最近 AIGC、ChatGPT 等话题持续发酵,热门程度不亚于之前的 “元宇宙”。抖音、小红书到处都是机器对话、AI 绘图的视频。我看见别人生成的漂亮小姐姐图片眼馋得不行,终于按捺不住自己的好奇心,也尝试一下搭建。本...

WalkerD15阅读 1.6k评论 3

Science AI 大潮已至,科技部亲自下场出大动作
生成式 AI 爆火,中国如何在 AI 时代实现弯道超车?对此,科技部亲自给出答案:启动 AI for Science 专项部署工作。可以预见,AI for Science 新一轮大潮即将来临。

超神经HyperAI3阅读 79.9k

封面图
TOPI 简介
这是 TVM 算子清单(TOPI)的入门教程。 TOPI 提供了 numpy 风格的通用操作和 schedule,其抽象程度高于 TVM。本教程将介绍 TOPI 是如何使得 TVM 中的代码不那么样板化的。

超神经HyperAI1阅读 90.7k

编译 PyTorch 模型
本篇文章译自英文文档 Compile PyTorch Models。作者是 Alex Wong。更多 TVM 中文文档可访问 →TVM 中文站。本文介绍了如何用 Relay 部署 PyTorch 模型。首先应安装 PyTorch。此外,还应安装 TorchVision,并将其...

超神经HyperAI1阅读 92.9k

15 声望
9 粉丝
宣传栏