基于单片机的太阳能路灯控制器设计方案

图2 负载输出控制与检测电路

第二级采用了电子保险丝保护, 当流经电子保险丝的电流骤然增加时, 温度随之上升, 其电阻大大增加, 工作电流大大降低, 达到保护电路目的, 响应时间为秒数量级, 过流撤消或短路恢复后电子保险丝恢复成低阻抗导体, 无须任何人为更换或维修。系统采用了两级保护措施后, 在长达数小时的负载短路实验后, 控制器仍没出现电路烧毁现象。解决了用传统保险丝只能对电路进行一次性保护以及一旦器件烧毁必须人为更换的问题, 同短路后需手动复位或断电后重新开启的系统相比, 也具有明显的优点。简化了太阳能路灯控制器维护, 提高了系统的安全性能。

2.6 硬件设计过程中的注意事项

( 1) 感应雷保护电路应设计在太阳能电池板引线入口处, 保护电路周围4 mm 内不能布置其他器件。

( 2) 防止太阳能电池板反接的二极管必须采用快恢复二极管, 这种二极管导通内阻小, 充电时发热量小, 不用散热器也可以连续充电, 充电效果好。

( 3) 充电、负载放电电路的印刷线路宽度至少为4 mm~5 mm, 线路上用搪锡处理以增加过电流能力, 大电流导线从一层过渡到另一层时, 要放置3~5个过孔。

( 4) 过流、短路保护电路选用的电流取样电阻要综合考虑电流、功率及热稳定性三个因素。电阻增大则电路效率下降, 本系统选用电阻为0.01 Ω, 过电流能力在10 A 以上的康铜丝作为电流取样电阻, 来产生取样电压, 取样电压最多不超过0.2 V, 故采用运放LM358 对其进行放大。

( 5) 器件的布局和PCB 的布线采用模块化方式, 大电流信号与小电流信号要分离,对放大电路的线路尤其要精心布置。数字地和模拟地分开, 注意电源线和地线的布局。

系统软件设计

与本设计方案的硬件电路对应的软件程序包括: 主程序、定时中断程序、A/D 转换子程序、外部中断子程序及键盘处理子程序、充电管理子程序、负载管理子程序。单片机的软件编程以Keil C 编译器的Windows 集成开发环境μvision2 作为开发平台, 采用C51 高级语言编写。

3.1 软件编程要点

( 1) 本系统采用较少的按键实现了诸多功能, 如负载工作模式的设置、双灯同时工作还是分时工作、负载工作时间的设定、自检功能等, 为防止误操作采取了一些措施。这种方法实际上是一键多用的一种尝试, 还可以推广到更复杂的人机对话的设计, 其思路可参见按键处理流程图。

( 2) 键盘在定时中断服务程序中读取, 用中断间隔时间实现键盘的去抖, 不必编写另外的延时程序, 提高了CPU 的利用效率。键盘值存入数据缓冲区, 在主程序中读数据缓冲区的内容, 执行键盘功能散转子程序。

( 3) 环境光线( 闪电、礼花燃放) 对太阳能电池板的采样电压有明显影响, 故在白天、黄昏的识别时, 要进行软件延时, 一般控制在2~3 min.

( 4)外部中断为高优先级中断, 编制子程序实现负载过流、短路保护时, 要充分考虑到负载启动瞬间会产生数倍于额定电流的冲击电流, 冲击电流维持时间在3 ms~5 ms, 应在软件上采取措施,避免短路与负载开启的误判。确定负载过流、短路后, 切断负载输出。负载切断后, 每隔一段时间, 如20 s, 应试接通负载开关, 当发现过流、短路信号已消除, 则恢复负载的输出, 否则负载开关仍然保持断开。

( 5) 为保护负载( 灯具) , 蓄电池过放保护恢复时应用软件设置一个回差电压, 这样负载开关不会出现颤抖现象, 有利于延长灯具的使用寿命。

( 6) 根据STC12C5410AD 的Data Flash 的特点,数据写入时必须启动ISP/IAP 命令, CPU 等待IAP动作定时后, 才继续执行程序, 要先关断中断( EA) .

还应注意数据写入Data Flash 存储器, 不能跨越扇区。