输出模式说明:当停止LED显示时,所设置的模式自动存入MCU的内部E方ROM,断电也不会丢失。
3.2 太阳能电池板的电压检测电路
太阳能电池电压采集用于太阳能电池工作电压的识别,利用单片机的PWM功能,对太阳能电池板进行充电管理。太阳能电池板电压采集,用于太阳光线强弱的判断,因而可以作为白天、黄昏的识别信号,同时支持太阳能板反接、反充保护。太阳能电池板的正极(P+)经过R6、R8的分压后,把电压送到单片机的PCI的端口,由Atmega48单片机的A/D转换模块的将采集到的电压信号转换为数字信号,如图4所示。
在图中,D4起到保护作用,保证UPCI的电压不低于0.7 V。电容C8是用来防止干扰信息。
3.3 蓄电池的电压采集电路
蓄电池电压采集用于蓄电池工作电压的识别,利用单片机的PWM功能,对蓄电池进行开路保护和过充保护。蓄电池的正极(B+)经过R36、R7、R9的分压后,把电压送到单片机的ADC7的端口,如图5所示。在图中,D5起到保护作用,保证UADC7的电压不低于0.7 V。电容C17是用来防止干扰信息。
3.4 充放电控制电路
充放电控制电路如图6所示。蓄电池电压在正常情况下,由单片机控制的充电驱动MOS管Q1为高电平,处于截止状态,三极管Q3导通,这时PWM占空比为零,太阳能电池板向蓄电池恒流充电;当蓄电池电压达到13.6 V时,Q1为高电平时,Q3导通,Q1截止,通过控制占空比,使Q1实现通断控制,此时处于恒压浮充状态;当电流下降到某一设定的值时,进行恒流充电;但蓄电池电压达到设定的过充点14.4 V时,再进行恒压涓流充电;涓流小到某一值,单片机控制的充电驱动Q1进行短路保护;当蓄电池电压下降到某设定值时,Q3重新导通,Q1截止,恢复为正常充电状态。当蓄电池电压低于设定的过放点时,放电驱动管Q2为高电平,Q4导通,Q2截止,此时负载无输出;当蓄电池电压达到12.6 V时,单片机控制的放电驱动T2为低电平,Q4截止,MOS管Q2导通,此时恢复对负载供电。
3.5 输出电流采样及温度检测电路
输出电流采样电路采用一个小电阻来检测电流,通过运算放大器放大,经A/D转换后输入单片机中,就可以计算出电流I的大小。
蓄电池的容量是随温度的变化而变化的,温度降低,蓄电池的容量就减小;温度升高,蓄电池的容量将增大。如果充电电流维持不变,相应的充电倍率将不变,不同的充电倍率对应着不同的过充点,因此要采用温度补偿对蓄电池进行保护。单片机通过采样温度参数,实时检测当前温度,进行温度补偿。本设计中温度的检测采用负温度系数的热敏电阻进行,负温度系数的热敏电阻随温度的增长,电阻值变小。
4 控制器软件设计
控制器软件采用模块化设计,其主程序流程图如图7所示。太阳能路灯控制器接电源后,首先进行系统初始化,根据太阳能电池板的电压来判断白天还是黑夜,并执行相应的操作;接着对太阳能电池的电压和蓄电池的电压进行各种条件的判断并执行相应的操作;当各种条件判断完毕后,程序回到初始判断,进而开始新一轮的程序运行。
5 结束语
文中设计的太阳能路灯控制器已研发成功,测试证明:该控制器具有良好的启动性能,蓄电池的充电过程能够达到预期的要求,当蓄电池电压过低时,能够自动启动开关管,断开放电回路实现了蓄电池的过放保护,而且可以针对不同的蓄电池设定参数,进行温度补偿。由于采用Atmega48单片机作为主控芯片,功耗小、电路设计简单、故障率低,具有较高的性价比,而且调试方便,适宜批量生产。