2024-09-01
售卖作品
00

目录

全部代码

*6. 红外遥控灯光控制系统设计:

可通过红外遥控器遥控实现LED照明灯的开关;

可遥控实现灯光亮度(PWM)的调节;

遥控可在白光照明与彩灯效果之间的切换;

基于单片机的灯光控制系统:硬件:DS1302、LCD显示、光敏传感器、LED灯、按键

要求:在LCD上显示实时时间;要求能够通过按键对时间参数进行设定,三(四个)按键为功能设置:SET、INC、DEC、(ENTER)。分时段控制功能:夏令时:每年5月1日~9月30日,19:30—6:00启动灯光控制系统、其余时段关闭系统;冬令时:18:30—6:30启动灯光控制系统、其余时段关闭系统;同时应能检测环境亮度,当环境亮度检测低于一定阈值(自行调试确定)时,自动开启灯光控制系统。

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 写程序不要闭门造车,这种重复造轮子的事情不要去做。

全部代码

cpp
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!