先来看下原理图,知道红外控制是怎么一回事。

自制红外控制装置原理图

左图为红外接收管,由原理图可知红外接收管其中两个引脚接电源,最后一个串联一个电阻单片机P3.2相连,这并不难理解。

自制红外控制装置原理图

红外发射管稍微复杂一点,红外发送管一端直接连在VCC上,另一端接了一个PNP型三极管,三极管B极串连一个电阻接到单片机P1.5口,这没什么疑惑,至于为什么这样连接,只能说这样连接好控制,当然还有其它连接方式,可以说硬件部分是较简单的。

自制红外控制装置原理图

再来理解一下单片机控制协议,如果搞DIY的话,接触到最多的协议就是NEC协议,至于这种协议有很多种,有部分人会问为什么是这种协议,我只能告诉你,这是规定,如果你有这个能力的话完全可以自己规定一个协议,好了我们还是先来了解下NEC协议规定。

协议规定

1、低位首先发送,一串信息首先发送9ms的AGC(自动增益控制)的高脉冲,接着发送4.5ms的起始低电平,接下来是发送四个字节的地址码和命令码,这四个字节分别为:地址码;地址码反码;命令码;命令码反码,如果你一直按那个按键,一串信息也只能发送一次,一直按着,发送的则是以110ms为周期的重复码,这个协议有一个很突出的特点就是接收到的信号跟发送到的信号正好是反向的。

自制红外控制装置原理图

2、重复码的格式是由9ms的AGC高电平和4.5ms的低电平及一个560us的高电平组成。

自制红外控制装置原理图

3、逻辑1的是由560us的高电平和1.69ms的低电平组成的脉冲表示

自制红外控制装置原理图

4、逻辑0的是由560us的高电平和565us的低电平组成的脉冲表示

自制红外控制装置原理图

了解协议之后我们就是写程序了,程序按照该协议规定一步步去写,首先单片机先判断是否产生下降沿,然后进入外部中断0的中断函数,延时一下之后检测IO口是否还是低电平,是就等待9ms的低电平过去,之后在等待4.5ms高电平过去,接下来接收传送过来的四组数据(先等待560us的低电平过去,再去高电平时间,如果超过1.12ms那么是高电平),然后检测接收到数据和数据反码进行比较,是否等到的数据是一样的。

上述就是程序所要控制的内容,再次说明下,头条文章中不能加入链接分享,所以如果大家喜欢的话,我再单独发布一个视频,把大家想要的资料都会公布,其中有红外接收器,也有红外发送器,其实你认为高大上的遥控器也不是梦,学会了红外控制部分,你就会知道控制家电就是那么简单。