陈敏敏,黄道燚,彭强
汕尾职业技术学院,广东汕尾,516600
根据赛题要求,设计并制作一个照度稳定可调的LED台灯和一个数字显示照度表[1]。基本要求如下。
(1)数字显示照度表由电池供电,相对照度数字显示不少于3位半,无需照度校准。数字显示照度表的检测头置于调光台灯正下方0.5米处,调整台灯亮度,最大照度时显示数字大于1000;遮挡检测头达到最低照度时显示数字小于100。台灯亮度连续变化时,数显也随之连续变化。亮度稳定时,数显稳定,跳变不大于10。数字显示照度表和调光台灯间不能有信息交换。
(2)调光台灯输入电压Vi:直流10~15V,Vi变化不影响亮度。
(3)亮度从最亮到完全熄灭连续可调,无频闪(LED灯板供电电压纹波小于5%)。
(4)台灯供电电压为12V时,电源效率不低于90%。
方案一:用51单片机作为控制器。51单片机通用灵活、价格低、使用简单方便,但运行速度慢、存取量小,且缺少ADC、PWM等功能[2]。
方案二:用STM32单片机作为控制器。STM32单片机性能强大、外设丰富,但价格较高。
方案三:用Arduino单片机作为控制器。Arduino单片机运算较快、价格便宜,同时具备本系统所需要的接口功能。
通过比较,选择方案三。
方案一:可控硅调光相控原理,采用相位控制来实现调光,通过触发信号控制可控硅的导通角,从而控制台灯电路电压具有响应速度快、精度高的特点。但可控硅在输入电压和电流较小时容易造成频闪,控制难度较大。
方案二:PWM调光原理,通过单片机输出PWM控制方波的占空比,从而实现控制电压的输出大小,且Arduino自带PWM输出引脚,具有易编程、精度高、响应速度快的特点。
综合比较以上两种方案,选择方案二。
数字显示照度表电路主要由照度传感器、OLED屏、Arduino单片机、充电电池四个模块组成,其中数字照度表为独立电路,与后面其他电路无任何连接或通信。具体连接如图1所示。
图1 数字显示照度表电路
本装置采用LM2596模块对输入的直流电源进行稳压后,完成系统电源的供应,可以提供5 V分别给单片机、照度传感器和OLED屏等电路供电[3]。电源电路图如图2所示。
图2 电源电路
主控芯片采用Arduino单片机模块作为处理器[4],主要完成整个系统的处理工作。用户控制电路主要包括电位器旋钮和功能切换按钮电路。电位器旋钮主要作为用户的调光输入,按钮主要用于检测用户手动控制和自动调节方式的切换操作,具体的电路如图3所示。
图3 主控芯片电路和用户控制电路
灯光亮度调节电路部分主要包括JG30灯光控制模块。利用单片机的PWM功能,对控制灯光驱动模块进行调节控制,从而达到调节LED台灯亮度的目的。其中灯板有五片,将其在台灯顶部构成环形,使得台灯底部受照均衡,五块灯板采用并联的方式,接法相同,其中一块灯板的电路如图4所示。
图4 灯光亮度调节电路
灯光照度检测电路由四路GY30模块组成,它们分布于检测A4纸的四周,用于获取台灯底部各个位置的照度,主要用于自动调节功能中应用到的PID算法,作为反馈因子来使用[5]。其电路如图5所示。
图5 灯光照度检测电路
系统软件设计包括两个部分:数字显示照度表程序设计和台灯程序设计。
数字显示照度表控制芯片Arduino单片机的程序流程图如图6所示。
图6 数字显示照度表控制芯片程序设计流程
程序的设计包括:(1)初始化工作,包括OLED初始化、IIC通信初始化等;(2)驱动读取照度值;(3)把照度值进行数值处理转化,使其照度值显示范围处于0~1100之间,转化为字符串显示到OLED屏[6]。
台灯控制芯片Arduino的程序流程图如图7所示。
图7 台灯控制芯片Arduino程序流程
台灯的总体程序设计如下。
(1)初始化工作:包括照度传感器、ADC、PWM等的初始化工作[7]。
(2)按钮状态扫描:根据用户对台灯按钮的操作,分别执行手动控制、自动调节两种处理方式。
(3)手动控制:读取电位器的输出电压值,根据电压值调节PWM占空比,控制灯光驱动模块调节台灯亮度,实现灯光照度随电位器转动而改变[8
]。(4)自动调节:读取台灯底部各传感器的值,对该值进行处理后,作为PID算法的反馈因子,控制PWM的数值为控制输出,调节灯光照度,使得各传感器的照度恒定[9]。
(1)基本要求1:
经测试,旋钮均匀旋转时,亮度照度表的数字显示均匀增加,符合题目要求。将旋钮旋转到任意若干个位置时,本系统所采用的照度值非标准的光学照度值,而是一个由光感模块感应转换的相对数值,下面统一用照度值来描述这个相对数值[10],测试数据如表1所示。
表1 台灯照度稳定性测试
按照上面的数据分析,数显稳定,跳变小于10,最小值和最大值符合题目要求。
(2)基本要求2:
调节输入电压Vi,任选两个旋钮位置,进行光照值测试。测试结果如表2所示。
表2 输入电压干扰测试
按照上面的数据分析,可以得出电压变化时,照度基本稳定,符合题目要求。
(3)基本要求3:按照表1测试分析,亮度连续可调;经观察测试,台灯无频闪。
(4)基本要求4:按照电源效率比计算式子[11]
系统输入功率为:Pi=Vi×Ii=12×0.60=7.2W
灯板消耗功率为:P=Vo×Io=5×1.23=6.15 W
电源效率为:P/Pi = 85.4%
(5)功能优化部分:
台灯调至最大照度,均匀选取A4纸上五个点的数据,如表3所示。经计算,(1662-1646)/1546=2.7%<5%,符合题目要求。
表3 灯下位置照度均衡测试
使用另外一个台灯调至最大亮度作为干扰源,当干扰源处于被测台灯的随机距离位置时,测得纸面中心点的照度值如表4所示。经测试取最大值与最小值进行计算,(680-600)/600=13% > 5%,比题目要求偏大。
表4 抗干扰源测试
将台灯放置在实验室的不同位置,各点的环境光线不同,经测试,在不同环境下,测得的光照度如表5所示。其中,位置D的环境亮度太高,台灯已处于熄灭状态,但照度值仍然达到了1100。其他环境光线偏暗的位置,照度值均匀正常。
表5 环境干扰测试
本文设计了以Arduino为控制器、照度稳定可调、可数显照度值的LED台灯,实现了亮度稳定、无频闪、电源效率高、抗干扰效果好的要求,且可随环境光线强度自动调节亮度,能准确显示照度值、成本低、操控简单,具有推广价值。