zoukankan      html  css  js  c++  java
  • 红外收发基础

    基础认识

    红外光:

    只要温度高于绝对零度(-273.15℃)的物体都会发出红外光,因此它是无处不在的。肉眼不可见。

    波长:

    红外发射管常见的波长有850nm和940nm两种比较常见

    频率:

    发射端以一个固定频率来发射红外光,一般以37.91KHZ比较常见,也有的地方自接说成是38KHz。同时,接收端只能识别该频率下的信号,只要发射端与接收端的频率正负相差不超过1KHZ,都是可以正常通信的;如果相差超高2KHZ,会出现失灵或者距离短等情况。

    红外发射管:

    与普通发给二极管(LED)相识,但其发出的光是不可见的

    红外接收管1

    可能存在两种结构,原理图1中D1二极管默认不导通,如果接收到红外信号时二极管的电阻会大大降低,而实现导通。

     红外接收管2

       该模块有三个引脚,功能比前面的大大增强。它的内部电路包括红外监测二极管,放大器,限幅器,带通滤波器,积分电路,比较器等。通过内部电路,还原处发射端的信号波形,可以直接被单片机使用。因此也被称为一体化红外接收头。也就是说,它输出的是符合数字电路要求的数字信号,可以直接拿来使用。所以,虽然外型上只多了一个引脚,但实际内部功能增加了很多很多,大大简化了电路设计者的工作。另外,此类接收头的内部放大增益比较大,很容易引起干扰,因此一般厂家建议在供电脚上加上4.7uf以上的电容进行滤波。

       常用型号有IRM3638、HS0038和VS1838等。其接口电路如下所示

            

    红外协议

    1. 红外光是载体,需要通过此载体实现数据交互,必须存在数据协议

    2. 协议的最终都是为完成0或1的指令传送

    3.常见有:ITT协议、NEC协议、Nokia NRC协议、Sharp协议等

    NEC协议发射端:

    遥控器内部一般会使用455Khz的晶体作为震荡源,通过内部分频电路将其调制为频率37.91Khz、占空比三分之一的震荡信号。遥控器闲置是,发射端无输出。当有按键按下时,会发送一串信号驱动红外发射端发射红外线,信号格式如下:一段引导码、两个字节的用户码(厂家定义)、一个字节的按键数据、一个字节的按键数据反码,最后跟一个停止位(编程时基本不考虑)。

    NEC协议接收端:

    闲置时输出高电平,当收到37.91KHZ的红外时,接收端调制出的信号时低电平,无红外光时,又恢复到高电平。所以,将发射端的信号全部取反则为接收端的接收信号。

    接收端红外信号解析与输出:

         空闲状态下引脚输出高电平

         当表示一个bit位为0时,先输出一个0.56ms的低电平,然后输出一个0.565ms的高电平;

         当表示一个bit位为1时,先输出一个0.56ms的低电平,然后输出一个1.690ms的高电平。

    编程导向

     以是否有红外信号输出/判断高低电平

    接收端编程思路:

    通过两个下降沿计算到时间间隔,可以判断到接收到的信号时0还是1

    发送编程思路:

    发送端发送高电平其实是38Khz的高低电平组成的

    定时器设置为38KHZ中断,如果要发送则在中断计数里一直取反发送端(连接红外灯)的电平,实现发送高电平(接收端识别为低电平)的数据,如果发送低电平则延时不动作。


     参考视频:https://www.bilibili.com/video/av73032905

  • 相关阅读:
    浅谈MVVM模式和MVP模式——Vue.js向
    浅谈JavaScript中的null和undefined
    js的单线程和异步
    字符串替换replace方法
    数组的长度、数组元素的添加和删除
    去掉数组中的空元素
    创建数组方法、数组元素的读和写
    Android中H5和Native交互的两种方式
    请求抓取工具
    css层叠规则(层叠样式表)
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/11801896.html
Copyright © 2011-2022 走看看