白天黑夜的判断可以通过读取太阳能电池两端的电压来判断,也可以通过采集控制器预留的光敏传感器接口信号来判断,根据太阳能电池的电压来判断的白天、黑夜判断程序如图3所示。图3白天、黑夜判断程序流程白天处理程序如图4所示,进入白天处理程序后首先关闭LED路灯并打开测试按键所对应的中断,然后采集太阳能电池的电压U1 ,蓄电池的电压U2 ,环境温度T,根据环境温度T及温度补偿系数(铅酸电池-5mV/℃,锂电池-4mV/℃,这一系数也可在程序中调整)计算确定蓄电池浮充点电压Uf ,过充保护电压Uhvd ,并根据采集到的U1 ,U2 之间的大小关系决定是否执行充电程序,进入充电状态后,又根据U2 的大小决定是直充、浮充、还是过充保护。图4白天处理程序流程图5黑夜处理程序流程黑夜处理程序如图5所示。进入黑夜处理程序后,首先判断开灯延时时间是否到了,如果没有到,则一直等到开灯延时时间到,开灯延时时间到了,则采集蓄电池的电压U2、环境温度T,根据环境温度T及温度补偿系数计算确定蓄电池过放保护电压Ulvd ,并根据采集到的U2 决定进入过放保护、切换至市电供电或开启蓄电池放电以开启LED路灯,LED路灯开启后又要判断关灯时间到否,若关灯时间到了,则关闭LED路灯,两路LED路灯可以实现单独控制。控制器在进行软件程序设计时也可增加两路负载的双时段控制功能,双时段控制是指两路负载的晚上亮灯时间和早晨亮灯时间均可设置,设置为双时段功能后,负载晚上亮灯一段时间后关闭,天亮之前再次亮灯,等到白天时再关闭,并且亮灯时间可调。双时段控制的示意图如图6所示,控制器通过监测光控点可以实现纯光控,也可以实现光控和双时段定时配合控制。光控点是指晚上亮灯时太阳能电池板的电压值,用户可以根据实际环境调整光控开启电压,比如晚上太阳能电池板有其他光线干扰而开不了灯时,可调高此值,滤除杂光干扰,但开灯时间可能提前。光控判断时间指电池板电压达到光控点时需要判断的时间,时间越长滤波效果越好,调小此值可以达到提前开灯的目的,但容易受外界杂光干扰。延时开灯指晚上延时一定时间再开灯,调节此时间,可以达到推迟开灯的目的。控制器还设有测试功能,测试按键采用中断模式,当有测试按键按下时,进入测试状态中断服务程序。白天时,按下控制器上的测试按键,可以直接打开LED路灯负载,再次按下则关闭负载。打开后没有再按键关闭负载,则1min后自动关闭