美文网首页
esp8266_sdk_ir_rx_tx红外遥控示例

esp8266_sdk_ir_rx_tx红外遥控示例

作者: only_cherry | 来源:发表于2018-06-02 20:00 被阅读0次

前言:
红外遥控是利用红外线进行传输数据,红外线又称红外光波,在电磁波谱中,光波的波长范围为0.01um1000um。根据波长的不同可分为可见光和不可见光,波长为0.38um0.76um的光波可为可见光,依次为红、橙、黄、绿、青、蓝、紫七种颜色。光波为0.01um0.38um的光波为紫外光(线),波长为0.76um1000um的光波为红外光(线)。红外光按波长范围分为近红外、中红外、远红外、极红外4类。
红外线遥控是利用近红外光传送遥控指令的,波长为0.76um1.5um。用近红外作为遥控光源,是因为目前红外发射器件(红外发光管)与红外接收器件(光敏二极管、三极管及光电池)的发光与受光峰值波长一般为0.8um0.94um,在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的传输效率及较高的可靠性

载波信号:
载波是指被调制以传输信号的波形,一般为正弦波。
1)载波的作用
1.减小传输中的噪声;
2.频分复用,即同一频率之间同一信道传输多路信号而不混叠;
3.可传播更远距离,有利于接收;
2)载波频率
调制载波频率一般在30KHz到60KHz之间,常用的载波有33K,36K,36.6K,38K,40K,56K等,其中38K使用最多。
常用占空比有1/3、1/2,1/3最多。

调制:
目前主流的调制方式有PPM和PWM。
1)PPM:脉冲位置调制,调制脉冲宽度不变,用脉冲间隔来区分0和1。脉冲宽度不变都是560us,脉冲间隔改变。逻辑1总时间为2.25ms,逻辑0中时间长度为1.12ms。
2)PWM:脉冲宽度调制,脉冲间隔不变,调制脉冲宽度改变。脉冲间隔 为600us,脉冲宽度不同。逻辑1高电平时间为1.2ms,逻辑0高电平时间为0.6ms。

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

常见的NEC协议格式为:
依次发送

  1. 发送9ms的高电平脉冲
  2. 发送4.5ms的低电平
  3. 8bit的用户码(低位在前)
  4. 8bit的用户反码,用于检验地址码是否出错
  5. 8bit的数据码(低位在前)
  6. 8bit的数据反码,用于检验命令码是否出错。
    !!重复码:
    假如一直按着按键不松,它将以110ms为周期发送重复码,重复码由9ms高电平、2.25ms低电平及560us高电平组成。


    红外协议.png

1)NEC协议分析:
38KHz的载波,脉冲时间560us,紧接着没有脉冲时间为1.69ms(低电平),则为逻辑1;
脉冲时间560us,紧接着没有脉冲时间为560us(低电平),则为逻辑0;


逻辑0和1.png

esp8266_rx_tx官方推荐
ESP8266定义了1个IR红外遥控接口,IR红外遥控接口由软件实现,接口定义如下:
管脚名称 |管脚编号 |IO |功能名称
(MTMS) |(9) |(IO14) |(IR_TX)
(GPIO5) |(24) |(IO5) |(IR_RX)

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

  1. WS管脚产生
  2. 由GPIO中的sigma-delta功能在任意GPIO口产生载波。
    其中sigma-delta产生的载波占空比约为20%,推荐使用MTMS管脚(GPIO14),可产生准确的38KHz且占空比为50%的标准方波。
    2)接收:
    红外接收功能通过GPIO的边沿中断实现,读取系统时间,将其时间相减可以得到波形持续时间,然后通过软件逻辑实现红外协议处理

IR_Demo_For_ESP8266_NONOS_SDK源码:
链接:https://pan.baidu.com/s/1KohkTFd9Qxz_reeAM_9GvA 密码:zv3d
下载后添加到esp8266_sdk_nonos目录中编译即可使用:

如果使用 ESP8266_NONOS_SDK_V1.5.0 或之后版本,请在示例的 Makefile 中 'LINKFLAGS_eagle.app.v6" 区域增加 "-lcrypto" 。

相关文章

  • esp8266_sdk_ir_rx_tx红外遥控示例

    前言:红外遥控是利用红外线进行传输数据,红外线又称红外光波,在电磁波谱中,光波的波长范围为0.01um1000um...

  • 遥控器原理小知识

    遥控器原理小知识(附加程序) 1.红外遥控简介 主要器件:红外遥控器、红外接收头。 2.红外遥控器 Ht6221标...

  • 红外遥控及Android手机红外遥控器开发

    一、红外遥控 红外遥控技术是通过红外技术、红外通信技术和遥控技术的结合实现的一种无线控制技术。由于红外线的波长较短...

  • Android手机红外开发—点击和长按事件

    上一篇文章《红外技术及Android手机红外遥控器开发》中简单介绍了红外遥控技术和Android 手机红外遥控开发...

  • 「EE」 红外遥控器和射频遥控器

    红外遥控器与射频遥控器的区分,从外观上,红外遥控器由于使用红外光线发送信号,在遥控器的顶端可看到红外发射管或滤除可...

  • 红外遥控

    课前学习 单词含义infrared红外线的remote control遥控器 在生活中我们会接触到各式各样的遥控器...

  • 2017年11月28日学习总结

    今天上午老师有事,,只讲了半个小时昨天的项目关于温湿度测量 。下午助教老师讲解了红外遥控、红外接收头。 红外遥控器...

  • Arduino 红外遥控

    从左至右分别为OUT、GND、VCC 实验一 读取遥控器按键值通过串口发送值电脑。 接线 Nano功能接收头D9数...

  • 单片机小白学习之路(三十五)---红外遥控理解

    目标:红外遥控原理的理解 1.红外遥控简介 红外线是波长介于微波和可见光之间的电磁波,波长在760纳米到1毫米之间...

  • 03月13日长光培训嵌入式学习第三十八天

    今天围绕步进电机控制进行红外遥控器的学习。上午老师对红外遥控器NEC通信协议进行了讲解,由于红外接受装置只有一个P...

网友评论

      本文标题:esp8266_sdk_ir_rx_tx红外遥控示例

      本文链接:https://www.haomeiwen.com/subject/qeorsftx.html