摘 要: 为了节能和智能控制灯光,构建了一个以STC12C5410AD单片机为核心的LED照明闭环控制系统,实现了对白光LED照明的闭环控制功能。该系统利用光敏电阻实时采集环境光线强度,自动调节白光LED亮度;采用A/D转换将光线强度的模拟量转化为数字量;采用I/O口实现对LED的PWM功率控制;采用电流驱动,电流步距可调的方式来调节白光LED。通过测试表明,该系统提高了照明环境的品质,具有电路简单、可靠性强的优点。
关键词: STC12C5410AD;白光LED;A/D转换;PWM;电流驱动
0 引言
白光LED由于其独特的发光原理使其具有节约能源、环保、寿命长、发光效率高、成本低、减少维护费用、提供更好的灯光品质等优点[1],而成为人们关注的焦点。近年来在各行业的应用得以快速发展,包括在景观、沿途公路、隧道等场所都有一定的应用。目前国内外己经开始实行对灯光的智能控制,但国内对楼宇灯光的智能控制还很简单且不完善,大多依然是传统式的人工管理,造成了电能浪费和经济损失,而且过强或过弱的光照条件会带给人不适感觉。因此本文设计了LED照明闭环控制系统,采用PWM调光技术,采集环境光线强度,自动调节3 mm LED亮度,达到经济、节能的目的。
LED照明闭环控制系统由12个3 mm白光LED组成,采取软硬件设计相结合的方式,以STC12C5410AD单片机[2]为核心来实现总体方案的设计,从而完成该闭环控制系统的功能。
1 总体思路的设计
系统的硬件电路框架如图1所示,主要由STC12C5410AD主控制模块、数据采集模块、脉冲电流驱动模块、通信模块、人机界面模块5个模块组成。其中,主控制模块以STC12C5410AD为核心由电源模块、时钟模块、复位模块构成。数据采集模块利用感光元件光敏电阻采集环境光线强度,再利用STC12C5410AD的ADC转换器把光线强度值的模拟量转化为数字量。脉冲电流驱动模块主要由S8050和白光LED构成,通过脉宽调制PWM产生的脉冲电流来驱动LED,改变脉冲电流的占空比来调节LED的亮度。人机界面模块包括键盘处理模块、LED显示模块和数码管显示模块。键盘处理模块用来调节LED亮度变化的步长,而且当前步长通过数码管显示模块的七段数码管来显示。串口通信模块用于硬件电路与PC的通信,传输数据。
该系统的软件设计采用功能模块化编程思想实现,不同的模块完成相应的功能,并有程序上的中断、循环等。
2 硬件电路的设计
2.1 系统主控制模块
系统主控制模块是由STC12C5410AD单片机、电源模块、时钟模块、复位模块等构成,是整个硬件电路的核心,处理各种输入信号,发出指令控制各个器件工作,主控制电路如图2所示。
电源模块为单片机及其他元器件提供5 V及3.3 V直流电压。时钟模块为单片机提供标准时钟和运算速度。复位模块用于硬件电路的稳定性和可靠性。
2.2 数据采集模块
STC12C5410AD单片机带有8路10位的高速A/D转换器,速度可达到100 kHz。随着光照的变化,感光元件光敏电阻从亮阻到暗阻的变化值在1 k级别到几百k之间。设计中采用光敏电阻与一个100 k电阻串联分压的办法来将光敏电阻阻值的变化转化为可以采集的电压变化。
数据采集模块主要由光敏电阻[3]及100 k电阻构成。该闭环控制系统采用P1.7作为A/D转换口。采集环境中,根据光线强度的变化,光敏电阻的阻值随着改变,通过转化为电压的变化,将电压的模拟量转化为其数字量,然后根据电压的大小来调节单片机输出的脉冲电流占空比,从而调节脉冲电流的大小,进而自动调节LED亮度的大小。
2.3 脉冲电流驱动模块
该系统中运用脉宽调制PWM技术[4]来驱动12个白光LED。脉冲电流驱动模块用脉宽调制PWM技术产生的脉冲电流驱动LED,具有亮度高、散热性能好、驱动效率高等优点。通过STC12C5410AD,PWM信号频率通常会超过100 Hz,以确保这个脉冲电流不会被肉眼察觉。
脉冲电流驱动模块由S8050和白光LED组成,硬件电路如3图所示。其中S8050是最大集存器电流为0.5 A的NPN型晶体三极管,用在各种放大电路中。用三极管S8050驱动12个并联排列白光LED,单片机通过PWM控制工作在饱和区的S8050,使其饱和导通或者截止,从而实现对LED灯亮度的控制。S8050饱和导通时,其集电极电流可以达到500 mA,可以提供12个LED所需的工作电流。
2.4 人机界面模块
该人机界面模块包括LED显示模块、数码显示模块和键盘处理模块。LED显示模块用来显示12个LED。键盘处理模块用来调节LED亮度变化的步长。调节LED亮度变化的步长时,数码管显示模块用来显示当前步长的值。当LED亮度小时,增加步长,使LED的亮度增强;当LED亮度大时,减少步长,使LED的亮度减弱。
2.5 通信模块
由于上位机带有RS232接口,利用上位机的串行口与下位机进行RS232通信,传输数据。通信模块电路采用了PC的RS232标准串口设计的单电源电平转换驱动芯片MAX232,进行串行通信。利用STC12C5410AD的串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片,整个接口电路简单,可靠性高。
3 软件框架的设计
软件设计框架以STC12C5410AD单片机为核心,以Keil uVision3为编程平台,采用C51编程,实现系统的功能。采用功能模块化编程,不同的模块完成相应的功能,并有程序上的中断、循环等。该系统的软件设计框架包括主程序、中断服务程序和子程序构成,如图4所示。其中,子程序包含A/D转换、PWM[5]驱动、串口通信、键盘处理、LED显示、数码管显示等程序。
3.1 主程序设计
主程序由初始化程序和功能程序设计构成。初始化程序包括串口初始化、A/D转换初始化、脉冲调制PWM初始化、外部中断初始化,功能程序设计用来完成系统的整个运行程序。主程序设计的工作流程图如图5所示。
3.2 中断服务程序设计
中断服务程序包括外部中断0和外部中断1服务程序,用于控制PWM脉冲电流的占空比的大小调节。其中,外部中断0服务程序用于按键Key1处理,当按键Key1按下时,增加电流步距,电流占空比减少;外部中断1服务程序用于按键Key2处理,当按键Key2按下时,减少电流步距,电流占空比增加。
3.3 子程序设计
3.3.1 延时程序设计
延时程序设计采用for循环的方法来延时,主要用于按键消抖。
3.3.2 A/D转换程序设计
利用感光元件光敏电阻来采集光照强度,然后将采样值通过I/O口送给A/D转换器。A/D[6]转换程序的设计将采样值模拟量转化为数字量,以查询方式来读取A/D转换的结果。设计中采取A/D转换的10位结果,并将取特殊功能寄存器ADCDATA的前5位和ADCLOW2的前2位作为A/D转换的结果。A/D转换流程图如图6所示。
3.3.3 PWM驱动程序设计
PWM驱动程序利用单片机内部PCA模块工作在8位PWM模式。采用矩形波电流脉冲来驱动LED。LED的平均电流是最大峰值电流与占空比的乘积。当最大峰值电流一定时,输出的亮度取决于驱动脉冲电流的占空比。向PCA捕捉寄存器/比较寄存器CCAP0L和CCAP0H赋值,控制输出信号的占空比。通过寄存器CCAP0H值,装载到CCAP0L值。
3.3.4 串口通信程序设计
串口通信程序用于通过PC把程序下载到单片机中。其设计采用定时器1的8 bit自动重装模式设计波特率,使用中断的方式来发送数据。
4 测试与调试
在测试过程中,采用模块化思想测试各个功能。首先,串口通信程序是否能够发送数据,通过串口调试助手进行检验。在串口调试助手的窗口观察是否有数据显示,若出现“1”,则程序正确,否则错误。其次,测试中断程序,主要是检测按键的消抖。最后,测试A/D转换程序,主要是查看A/D转换的结果及其变化。
根据测试的程序,调试好各个功能模块的程序,然后综合调试系统的整个功能。通过在不同的环境下光线的强弱来控制光敏电阻的阻值,从而控制12个白光LED的亮度。当光线较强时,光敏电阻的阻值变小,A/D采样的结果变大,PWM脉冲电流的占空比减小,LED的亮度变小;当光线较弱时,光敏电阻的阻值变大,A/D采样的结果变小,PWM脉冲电流的占空比增大,LED的亮度变大,从而实现了系统功能。
5 结论
本文设计的LED闭环控制系统可以节约电能,减少经济损失,克服了人工管理的缺点,能实时采集环境光线强度,自动调节LED亮度,实现了对LED照明的闭环控制功能,提高了照明环境的品质,给人一种舒适的生活工作环境,具有电路简单、可靠性强等优点。
参考文献
[1] 樊岳标,刘丽兰,韩鎏.LED照明控制与仿真一体化系统设计[J].机械制造,2013,51(592):24-27.
[2] 胡礼广,王刚.基于STC12C5410AD单片机的镶嵌控制系统设计与实现[J].微型机与应用,2011,30(8):73-75.
[3] 徐梅.基于AT89C51的室内照明控制系统的设计[J].自动化与仪器仪表,2011(5):43-44,47.
[4] 张兴,秦会斌,郭石磊.基于UCC3818A的600W APFC电源设计[J].微型机与应用,2015,34(6):23-25,28.
[5] 郭凤仪,赫广杰,刘丹,等.基于单片机的光伏路灯照明系统的设计与实现[J].计算机测量与控制,2013,21(6):1615-1617,1627.
[6] 戴明,王琪,吴万庆,等.一种便携式多体征参数监护系统的设计及实现[J].电子技术应用,2015,41(2):78-81.