模拟红外控制灯光系统

2021-11-10 02:29吴虑李建中吴璇万川邓艳翔
科学与生活 2021年3期

吴虑 李建中 吴璇 万川 邓艳翔

摘要:为了解决某些特定场合复杂的灯光需求,设计了一个模拟灯光系统,用以模拟灯光的控制。本应用由STC89C52单片机,HS0038红外接收模块和红外发射遥控器组成。通过NEC协议,可以使用红外发射遥控器控制LED灯组的亮度及单个或整体LED灯的亮灭,此外还可以控制其流水灯显示,用以模拟实际情况下复杂灯光的需求。经测试,结果满足设计需求。

关键词:STC89C52单片机,HS2238,NEC协议,模拟灯光控制,红外控制

前 言

隨着科技的发展,人们对生活水平的要求也逐渐提高。在某些特定场合,包括家庭中的一些灯光的手动控制改为遥控控制;及某些娱乐场所,包括演唱会,演播厅灯对一些灯光要求较高的场合,目前仍然是由多人协作手动控制,这将大大增加不必要的人力消耗。因此,针对这些问题,提出了一个红外控制的解决方案。将以模拟复杂灯光的方式对其进行分析解决,最后可由单人控制遥控器的方式对整个灯光进行控制。经测试,结果满足最初的设想。

第1章 总体设计

硬件总体由STC80C52单片机作为主控芯片,由红外发射遥控器发送控制信息,在由HS0038红外接收模块接收其信息脉冲之后,将其发送至单片机,单片机对其进行解码后,通过解析其控制信息,从而对应的向LED灯组做出相应的操作。其总体设计图如下图1所示。

第2章 硬件设计

2.1最小电路设计

目前市面上可以完成目标需求的芯片大致有三类,分别是51单片机类、stm32单片机和树莓派。其中51单片机的优点是实现简单和价格便宜,但内置资源不足,适合于实现简单且功能不算复杂的需求;Stm32单片机的优点是功能强大,性价比高。树莓派的优点是功能及其强大,甚至可以跑LINUX系统,但价格过于昂贵。考虑到此次项目只是模拟实际的灯光控制,并不需要过高的配置。因此采用51单片机系列中的STC80C52单片机作为主要控制芯片。

2.2电源、串口、烧录三合一模块设计

考虑到如果将所有需要的接口功能都单独提供一个实际接口,这对硬件来说是一个负担,通过USB转串口的方式,便能同时解决供电、通信及烧录功能。市面上流行的USB转串口芯片是CH340。其硬件图如下图2-1所示:

2.3红外接收模块

红外接收设备可由红外接收电路、 红外解码芯片、电源和应用电路组成。此次项目中,无需添加额外的解码芯片,解码功能由单片机完成,这样将会减少成本。红外接收功能则由HS0038完成。他将接收到的红外脉冲发送单片机,然后由单片机进行解码。其电路图如下图2-8所示。

第3章 软件设计

3.1主程序设计

软件开始时,首先对单片机进行初始化,包括有对定时器的初始化和设定中断方式,开中断等操作;当准备工作完成之后,就开始通过外部中断的方式接收红外信号,并将接收到的脉冲宽度信息保存至一个缓冲数组,然后通过解码函数对脉冲信号进行解码,然后通过解码后的信号,判断需要做出开关灯、调亮度等操作。

3.2NEC通信协议

在同一个遥控电路中通常要使用实现不同的遥控功能或区分不同的机器类型,这样就要求信号按一定的编码传送,编码则会由编码芯片或电路完成。编码后的数据格式包括了引导码、用户码、数据码和数据码反码,编码总占 32 位。当使445KHZ的晶振时,其编码脉冲如下图3-4:

3.3中断处理函数

程序接收红外信号是采用中断接收的方式,通过下降沿触发。当遥控器按键按下后,单片机就会从外部中断接收到其红外脉冲,然后通过定时器判断脉冲的时间,再将这个时间记录下来。然后将33位数据脉冲保存至一个缓冲数组。后续可对这缓冲数组进行解码操作。

3.4解码函数

当红外脉冲接收完成后,就可对其进行解码。按照NEC格式,判断各脉冲的时间长度,便可判断其各位的0、1组成。其解码函数流程图如下图3-7所示:

如上图所示,外循环主要对四个字节的数据,包括用户段和数据段进行操作,内环是对每个字节的八个位进行解码操作。每位时间大于1390us的视为1,相反视为0.至此红外解码便能完成。

参考文献

[1]李松岭,杨昌福,李宇彤.基于80C52的水平测量仪系统的设计[J].科技传播,2015,7(11):158+151

[2]谢琪林.浅谈STC89S51单片机时序[J].电子测试,2020(24):139-140

[3]韩燕楚,余宏.基于51单片机的电子密码锁设计与应用研究[J].漯河职业技术学院学报,2020,19(06):21-23

河南科技大学 471000