基于单片机的太阳能路灯控制器设计方案
防止太阳能电池板反接的二极管必须采用快恢复二极管, 这种二极管导通内阻小, 充电时发热量小, 不用散热器也可以连续充电, 充电效果好。
( 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 存储器, 不能跨越扇区。
3.2 单片机软件编程
系统单片机软件流程如图3、4 所示。
图3 按键程序流程。
图4 电压检测子程序流程
(1)ADC 子程序
INT8U ADC(INT8U number)using 2
{number=number0x07;//通道号不超过7
ADC_CONTR = ADC_CONTR0xe0; //清ADC_
FLAG、AD 不启动
ADC_CONTR = ADC_CONTR|number; //选择通道
ADC_CONTR = ADC_CONTR|0x08;//启动A/D 转换
while((ADC_CONTR0x10)! =0x10); //等待A/D转换结束
return (ADC_DATA);//结果返回
}
(2) 外部0 中断响应子程序
void Service_INT0() interrupt 0 using 1
{ if(P3_2) //高电平,认为是干扰信号触发中断
return;
delay1(5000);//10ms 延时
if(P3_2==0)
{load_switch_1=LSTOP;//负载开关1 关
LOOP1_DL=1;//置负载短路标志
}
}
4 结束语
本文所设计的太阳能路灯控制器可适用12 V或24 V 工作的光伏系统, 可以直接驱动直流节能灯或通过逆变器驱动无极灯等作为照明光源, 也可以驱动一些直流低压负载用于城市亮化。控制器的两路负载输出可以用于机动车道和人行道的照明, 照明时间和工作模式可以灵活设置。着重解决了如何对蓄电池及负载进行有效管理的问题,提高了太阳能电池板的使用效率, 延长了蓄电池的使用寿命, 防止因线路问题而造成意外事件的发生。本文所设计的控制器已在江苏S238 省道得到应用, 具有设计可靠、成本低廉的特点, 具有较高的实用价值。
参考文献:
[1].STC12C5410AD datasheethttp://www.dzsc.com/datasheet/STC12C5410AD+_1135295.html.
[2].RISCdatasheethttp://www.dzsc.com/datasheet/RISC_1189725.html.
[3].MAX810 datasheethttp://www.dzsc.com/datasheet/MAX810+_1019165.html.
[4].F1 datasheethttp://www.dzsc.com/datasheet/F1+_2060738.html.
[5].LM358datasheethttp://www.dzsc.com/datasheet/LM358_1060605.html.
[6].LM393 datasheethttp://www.dzsc.com/datasheet/LM393+_1059532.html.
[7].PCB datasheethttp://www.dzsc.com/datasheet/PCB+_1201640.html.
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)