基于PIC16F877A的太阳能与市电互补照明系统控制器的设计
扫描二维码
随时随地手机看文章
1 控制器的主要功能及组成
本文所设计的控制器供街道和住宅小区夜间利用太阳能和市电互补照明系统使用,根据照明实际状况,设计控制器具有如下功能:
(1)支持12 V直流系统工作电压;
(2)支持最大至4 A的充放电电流;
(3)支持直流、脉冲两种充电方式;
(4)具有深夜使半导体照明灯具亮度减半的功能;
(5)蓄电池电量不足时,自动切换到市电电源供电;
(6)能检测太阳能电池的电压,自动转换工作模式;
(7)能检测蓄电池的电压,对蓄电池的充、放电过程进行控制;
(8) 具有防反充电保护、过充电保护、过放电保护和负载短路保护功能;
(9)具有电子时钟和计时功能。
图1所示为以PIC16F877A为核心的控制器外围电路示意图[3]。主要由PIC单片机(内部含A/D)、时钟电路、电压采样电路、开关驱动电路、时钟控制和数码管显示电路组成。单片机PIC16F877A是控制器的核心,外围电路包括开关控制电路(C1~C3)、数码管显示及驱动(A~G/Dig_EN1~Dig_EN6)电路、工作状态显示等。
2 主要电路设计及器件选型
2.1 PIC16F877A
单片机是控制器的核心,系统工作时需要采集太阳能电池和蓄电池的电压。太阳能电池的输出电压受温度和太阳辐射强度等外界因素影响较大,这就要求系统的实时性比较高,即要求系统的响应速度快。故设计中选用了内部含有A/D模块、具有14位指令宽度的中档PIC单片机16F877A,属PIC中级产品,在保持低价格的前提下具有很高的性能。
本文设计的控制器主要用到PIC16F877A的如下一些资源:
(1)16 KB的系统内可编程Flash,1 KB片内SRAM,10 000次擦写寿命。程序存储空间足够大,不需要额外扩展存储器;10 000次的擦写寿命方便进行程序调试;
(2) 2个具有独立预分频器和比较器功能的8位定时器/计数器。用于按键去抖和计时;
(3) 1个具有预分频器、比较功能和捕捉功能的16位定时器/计数器。用作调节PWM控制信号的占空比,控制充电开关;
(4) 8路10位ADC。使用其中的2路ADC通道分别对太阳能电池工作电压、蓄电池工作电压采样;
(5) 使用2个中断源,外部中断和定时器中断,分别用于计时和按键;
(6) 可编程I/O口。部分I/O口使用其第二功能,其他用于控制器系统功能扩展。
2.2 电压采样电路
控制器需要采集2路电压信号,分别是太阳能电池输出电压和蓄电池端电压,这两路信号均为变化的直流模拟信号,采样信号应能如实地反映检测量。设计中利用精度为0.1%的精密电阻组成简单的分压电阻网络来实现,并在分压电阻网络的输出端并联漏电流很小的精密电容和电感进行 滤波,以减小电流泄漏对测量精度的影响[4]。采样电路如图2所示。
2.3 控制开关驱动电路
控制器的主要控制对象是3个控制开关C1~C3。分别是蓄电池的充电开关、蓄电池放电(供电)开关和市电供电开关。开关的状态由单片机根据系统的工作状态进行控制:白天太阳能电池向蓄电池充电,开关C1闭合,太阳能电池将太阳能转换为电能,储存在蓄电池中,当蓄电池电压出现过充时,控制器断开充电开关C1;晚上主要由蓄电池向负载供电,开关C2闭合,当蓄电池电压不足(欠压)时,蓄电池供电开关C2断开,控制器自动切换为市电给负载供电(C3闭合)。图3、图4和图5分别为蓄电池充电、放电和市电供电时开关的驱动电路。[!--empirenews.page--]
在充电控制电路中,用肖特基二极管来实现防蓄电池反充电保护,防止晚上蓄电池向太阳能电池反充电。同时设计了防止蓄电池过充的保护电路,为了控制蓄电池的充电方式,充电控制信号为单片机输出的PWM信号。蓄电池放电(供电)开关的控制信号由单片机输出的高低电平直接控制,实现了深夜半功率供电功能。市电供电开关电路中使用继电器[5]。
3 控制器性能测试
本文对所设计的系统控制器的功能进行了初步测试,部分测试结果如下。
(1)指示灯测试系统工作状态
蓄电池脉冲充电情况测试。当TVcc>0.7 V时,天亮;此时12 V<Vcc<15 V,蓄电池脉冲充电,脉冲充电指示灯DS2点亮。如图6所示。
(2)示波器测试蓄电池充电波形
用示波器检测充电开关Q2的栅电压,检测蓄电池的充电情况。蓄电池脉冲充电情况下的输出波形为脉冲波形。
另外,还分别对控制器供电控制功能、充电和供电方式转换功能以及控制器工作时整个系统的性能进行了测试和分析,测试结果表明系统控制器可以很好地完成各项功能,并且运行良好。
本文所设计的基于PIC16F877A的系统控制器,充分利用单片机的内部资源,具有结构简单、功耗低等特点。经调试实验证明,控制器各项功能完成良好,具有较高的实用价值和良好的应用前景,对太阳能LED照明系统的推广应用具有参考意义。