*6. 红外遥控灯光控制系统设计:
可通过红外遥控器遥控实现LED照明灯的开关;
可遥控实现灯光亮度(PWM)的调节;
遥控可在白光照明与彩灯效果之间的切换;
1、
首先你得找到红外遥控器的这张图,也就是遥控器按什么,我们单片机会收到对应的数值。
红外遥控器的键码:
2、
然后你要明白,在仿真软件里面并没有红外遥控器,这意味着我们的思考单片机应该接受什么信号。
首先我们应该想到,如果我们是在做实物,我们需要一个红外遥控器,然后需要一个红外遥控接收器,红外遥控接收器就连着的单片机。他们的通信过程是这样的,当红外遥控器按下一个按键,红外遥控器就会通过红外灯发射红外光,他发射的这个红外光是根据红外协议编码了的,我们的单片机和我们的红外接收器就能够接受到这个红外光,单片机需要根据红外协议解码出这个红外光所代表的含义。
红外协议是一种协议:
[如果你想了解红外协议请点我]
忽略掉协议的内容,我以最直白的方式解释一下。就是说你按了红外遥控器上的按键,单片机会解码出一个字节的数据。而且你要知道红外遥控器上的每一个按键对应的数据都是不一样的。每个红外遥控器的键码也不一定相同。
3、
在了解上述基础内容之后我们就可以开始完成我们的设计,我们要知道在仿真软件里面是没有红外遥控器这个器件的,但我们是可以自己制作出一个红外遥控器的,怎么制作呢?既然红外遥控器遵从红外协议,我们用一块单片机写一个红外发射程序,这个红外发射程序可以根据传入的原始数据aaa把它编码成红外光信号(其实也就是控制红外光根据红外协议以不同的时间发射)。
这个红外光信号可以通过有线连接连接到我们的单片机,然后我们单面机解码出这个红外光信号就可以得到原始数据aaa。
这一段说了这么多其实全在这个图里,在下图中左边的红圈里面圈起来的就是我们自己制作的红外遥控器,当我们按下矩阵键盘的按键,也就相当于有了一个原始数据aaa,然后左边的红圈里面都这块单片机就会把这个原始数据aaa编码成红外信号。信号最终发出去之后,由右边的PIC16f887单片机负责接收,我们只用编写对应的接收程序就可以了.
备注:下图中的这个红外遥控器不是我做的(也就是左边红色圈里面的东西),是我以前在网上百度到的一个设计里面的,但现在我也不知道那个设计在哪里下载的,好像是51黑论坛里看到的。
经过测试下面这个图里面的矩阵键盘的红外码对应为:
0x43 0X7 0x15 0X9
0x16 0x19 0XD 0XC
0x18 0x5E 0X8 0x1C
0x5A 0x42 0x52 0x4A
4、
这一步就可以根据红外协议写解码程序了,这东西如果你自己去写……很麻烦……重复造轮子……我们要善于去查找资料。
那么我就在这个地方找到了资料,点我
为什么我们要借用别人写好的底层程序?
–>1 别人调试好的程序肯定是没有问题的,这样我们在后面做实物的时候就可以不用担心是程序出了问题。2 红外协议还是一个挺复杂的协议,就算我这个懂得红外协议的人,在不同单片机上它的写法也不一样,去重新写一遍也不是一件简单的事情。3 写程序不要闭门造车,这种重复造轮子的事情不要去做。