LED驱动器主程序设计
扫描二维码
随时随地手机看文章
1 主程序设计
图5为主程序流程图。主程序的作用是选择是否改变PWM频率及照度上限、无人模式和有人调光模式。恒照度算法在定时中断处理程序中实现。
2 调光算法设计
调光算法主要实现光照度信号的采集、数据处理运算并通过相应的算法实现实时跟踪补偿照度,从而实现平滑调光。TSL2561光照度传感器数字输出符合I2C总线标准协议,实现光照度采集必须实现TSL2561通信。I2C总线标准协议的读写方法主要有硬件实现和软件模拟,由于PIC16F690控制器没有自带的I2C总线接口,故本文采用软件模拟实现的方法。
采集进来的数据经过TSL2561标准规定的数据计算后获得光照度,将采集进来的室内光照度与设定的标准值比较,计算出LED需要补偿的照度值,并转化为处理器内PWM寄存器的值,记为当前PWM值。将前PWM寄存器值记为PWM原值。将PWM原值与当前PWM值不断比较递增或递减,使PWM输出以极小的步长跟踪当前PWM值,从而实现平滑调光。此算法还能解决启动跳变问题,使系统启动时PWM由零慢慢变化到当前PWM值。调光算法程序流程图如图6所示。
3 运动控制和按键输入程序设计
运动控制采用红外热电释人体运动传感器,能够检测室内是否有人,通过判断人体的活动情况选择相应的照明模式。若有人则选择调光模式,若无人则关闭LED灯,进一步节能。
按键输入主要有模式切换键及增减键,模式切换键主要用于切换改变频率或者改变光照度的最大设定值。考虑到单片机的硬件资源和合理的调光需求,时钟预分频比设定为4,频率变化范围为10~100 kHz,光照度最大设定值根据多次测量各时间段的光照度选取合适的调节范围,故光照度最大设定值范围为350~500。