基础认识
红外光:
只要温度高于绝对零度(-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中断,如果要发送则在中断计数里一直取反发送端(连接红外灯)的电平,实现发送高电平(接收端识别为低电平)的数据,如果发送低电平则延时不动作。