恒照度自适应调光的LED驱动器设计
本文针对传统照明能效低、耗电量大等问题,设计了LED恒照度调光驱动器。系统使用恒流LED控制芯片NCL30160作为LED光源驱动电路,采用TSL2561光照度传感器采集室内光照度,通过处理器相应算法进行闭环控制,实现室内的恒照度调光。该算法实现了PWM波形平滑变化,避免因PWM突变造成闪光。同时,系统增加了人体运动控制,实现无人、有人时的不同调光方案,使设计进一步节能和智能化。
1 系统简介及工作原理
系统由PIC16F690单片机、 TSL2561光照度传感器、LED光源和LED驱动电路4部分组成。由于LED的亮度与工作电流成正比,故调节工作电流即可调节LED的发光亮度。目前主要有调节正向电流和脉冲调制调光两种调光方法。由于脉宽调制调光具有不会产生任何色彩偏移、调光精度高、结合数字技术调光、调光范围宽、不闪烁等优点,故本文选用脉冲调制调光。
系统主要由TSL2561采集光照度反馈给PIC16F690处理芯片,经过PIC16F690进行相应的算法处理,输出随光照度规律变化的PWM波形,经过带有PWM接口的驱动电路驱动LED灯从而实现调光。系统框图如图1所示。
恒照度调光的LED驱动器系统框图
图1 恒照度调光的LED驱动器系统框图
同时,在本系统中加入了人体运动控制以及按键控制,能够检测人体运动,实现在无人时自动关闭LED灯,进一步减少电能浪费;按键能够调节PWM波形的频率以及设定环境大光照度,使系统更为人性化。
1.1 PIC16F690单片机
PIC16F690单片机具有高性能的RISC CPU、低功耗以及丰富的外设资源,能够满足本系统的硬件资源需求。由于该款单片机资源丰富,既满足系统需求,又不十分浪费资源,故降低了控制器成本。
1.2 TSL2561光照度传感器
TSL2561是TAOS公司推出的一种高速、低功耗、宽量程、可编程灵活配置的光强度数字转换芯片。该芯片的应用能够提供好的显示亮度并降低电源功耗。TSL2561具有以下几个特点:
①可编程配置许可的光强度上下阈值,当检测光照度超过阈值时能产生中断信号;
②数字输出符合标准的SMBus和I2C总线协议;
③可编程控制模拟增益和数字输出时间;
④超小封装和超低功耗;
⑤自动抑制50 Hz/60 Hz的光照波动。
TSL2561 的内部结构如图2所示。其内部有两个光敏二极管通道,即通道0和通道1,其中通道0对可见光和红外线都敏感,通道1仅对红外线敏感。流过光敏二极管的电流经过积分式A/D转换器转换为数字量,转换完后将数字量存入芯片内部的寄存器中。积分式A/D转换器将在一个积分周期完成后自动进行积分转换过程。 TSL2561可以通过对其内部16个寄存器设定来控制,该16个寄存器可通过标准的SMBus或者I2C总线协议访问。
TSL2561的内部结构
图2 TSL2561的内部结构
2 硬件设计
2.1 控制电路设计
控制电路主要由PIC16F690的小系统组成,包括复位电路、输入按键电路、下载调试电路、供电电路、晶振电路以及相应的信号输入/输出接口。
由于本系统的研究重点在于调光算法,且系统属于小功率,故供电电路采用简单实用的阻容电路。芯片供电电压为3.3 V,采用ASM1117稳压芯片。
下载调试电路根据微芯公司提供的资料,采用微芯集成仿真器ICD3,接口电路根据官方资料设计。复位电路以及晶振电路按照常用电路设计。总体硬件框图如图3所示。
总体硬件框图
图3 总体硬件框图
2.2 驱动电路设计
图 4为基于恒流LED控制芯片NCL30160的LED驱动电路。NCL30160是安森美半导体推出的一款NFET迟滞降压、恒流LED驱动器。它将电流提升到了1.5 A,是新一代高能效的解决方案,损耗非常低,体积很小,可大限度地减少空间和成本。通过利用仅55 mΩ的低导通阻抗内部MOSFET及以100%占空比工作的能力,能够提供能效高达98%的方案。高1.4 MHz的高开关频率使设计人员可采用更小的外部元件,将电路板尺寸减至小及成本降至低。
驱动电路图
图4 驱动电路图
根据NCL30160的数据手册及输出要求计算外围器件参数。系统采用5颗1 W的LED串联,恒定电流为350 mA。
R1=200 mV/ILED=200 mV/350 mA≈0.56 Ω (1)式中,ILED为LED灯串电流。图4中的C5采用官方数据手册推荐的取值。电感L1及ROT由式(2)~(4)得到。式中,toff、ton、△I、RDS(oN)的取值参考数据手册;VIN在此处取为24 V,DCRL为电感电阻,此处取为0 Ω。
公式
3 软件设计
软件设计包括主程序设计、I2C总线通信程序设计、调光算法设计,以及运动控制和按键输入程序设计4部分,是实现系统智能化控制的核心。
3.1 主程序设计
图5为主程序流程图。主程序的作用是选择是否改变PWM频率及照度上限、无人模式和有人调光模式。恒照度算法在定时中断处理程序中实现。
主程序流程图
图5 主程序流程图
3.2 调光算法设计
调光算法主要实现光照度信号的采集、数据处理运算并通过相应的算法实现实时跟踪补偿照度,从而实现平滑调光。TSL2561光照度传感器数字输出符合I2C 总线标准协议,实现光照度采集必须实现TSL2561通信。I2C总线标准协议的读写方法主要有硬件实现和软件模拟,由于PIC16F690控制器没有自带的I2C总线接口,故本文采用软件模拟实现的方法。
采集进来的数据经过TSL2561标准规定的数据计算后获得光照度,将采集进来的室内光照度与设定的标准值比较,计算出LED需要补偿的照度值,并转化为处理器内PWM寄存器的值,记为当前PWM值。将前PWM寄存器值记为 PWM原值。将PWM原值与当前PWM值不断比较递增或递减,使PWM输出以极小的步长跟踪当前PWM值,从而实现平滑调光。此算法还能解决启动跳变问题,使系统启动时PWM由零慢慢变化到当前PWM值。调光算法程序流程图如图6所示。
调光算法程序流程图
图6 调光算法程序流程图
3.3 运动控制和按键输入程序设计
运动控制采用红外热电释人体运动传感器,能够检测室内是否有人,通过判断人体的活动情况选择相应的照明模式。若有人则选择调光模式,若无人则关闭LED灯,进一步节能。
按键输入主要有模式切换键及增减键,模式切换键主要用于切换改变频率或者改变光照度的大设定值。考虑到单片机的硬件资源和合理的调光需求,时钟预分频比设定为4,频率变化范围为10~100 kHz,光照度大设定值根据多次测量各时间段的光照度选取合适的调节范围,故光照度大设定值范围为350~500。
4 实验结果
本实验使用TSL2561光照度传感器、控制电路、驱动电路。LED负载为5颗1 W的LED串联,恒定电流为350 mA。系统的工作状态可分为有人和无人,当传感器检测为无人时,PWM输出关闭,此时LED灯串熄灭;反之,则根据室内光照度自动调节LED灯串的亮度。由于实验条件限制,室内光照度改由遮光窗帘遮挡窗户强光来实现。如果系统数据和波形与理论分析一致,则说明系统设计正确。理论计算公式如下:
理论计算公式中,LUXF为反馈回来的光照度值。
多云天气条件下测得的实验数据
表 1是在多云天气条件下测得的实验数据。系统根据不同的室内照度,调节PWM输出波形从而改变LED光亮度。由于室内照度计探头位置放置和TSL2561传感器有一定的偏差,故数据存在一定的误差。即在有人时,根据式(5)计算PWM占空比与示波器显示波形基本吻合;无人时,无论室内光照度值是多少,PWM 占空比均为零,LED不照明。将实验数据与理论值进行比较,考虑一定误差的情况下,基本吻合。输出部分PWM波形如图7所示,分别为室内光照为22.82 lx和317.08 lx时的PWM波形。
结语
通过实验证明,系统按照程序设计,能够很好地进行恒照度控制;运动控制在无人时自动关闭,一旦检测到有人活动时,马上进行恒照度控制。同时系统设置了调节调光频率和大光照度值,能够根据不同要求做适当的改变。恒照度自适应调光和人体运动控制有效实现了节能要求。