太阳能充电控制器报告内容摘要本小组设计了一种基于单片机的太阳能控制器,系统使用低功耗、高性能的AT89S51单片机作为控制电路的核心器件。
此系统由太阳能电池模块,蓄电池,MC34063升压电路,充放电电路,电压采集电路,单片机控制电路和继电器驱动电路组成。
提高部分设计使用PWM(脉宽调制)控制技术来控制蓄电池充放电,通过控制MOSFET 管开启和关闭达到控制电池充放电的目的。
实验结果表明,该系统可以监视太阳能充电板和蓄电池电池状态,实现控制蓄电池最优充放电,达到延长蓄电池的使用寿命。
目录一、方案的论证与选择 (2)1.1 升压电路的方案选择 (2)1.2 控制电路的方案选择 (2)1.3 充电方式方案的选择 (2)二、系统原理及框图 (3)三、单元电路的设计与参数计算 (2)3.1 直流稳压输出电路 (2)3.2 A/D采样及转换电路 (2)3.3 继电器控制电路 (2)3.4 升压电路 (2)3.5 蓄电池充放电电路 (2)3.6 单片机供电电源 (2)3.7 单片机及外围引脚 (2)四、软件设计流程 (3)五、测试方法和结果 (2)六、测试结果分析 (2)七、总结 (2)八、参考文献 (2)附录 (2)关键词 AT89S51;控制器;继电器;MC34063;PWM一、方案的论证与选择1.1 升压电路的方案选择方案1:采用555倍增电路,该电路电压输出为输入电压倍数,不易满足线性电压输入变化时输出一个恒定充电电压的题目要求。
方案2:采用MC34063经典升压电路,该电路可靠性强稳定,芯片价格便宜,当输入电压变化时(小于12V)升压后的充电电压稳定在13.5V左右,满足蓄电池充电要求。
1.2 控制电路的方案选择方案1:采用tlp-521光耦控制,存在光耦敏感度不强,使用不稳定的情况。
方案2:采用单片机连接C9018型npn三极管放大电路连接HUIKE-HK19F-DC5V-SHG继电器控制电路选择;工作状态较稳定。
1.3 充电方式方案的选择方案1:恒压方式充电,最容易实现。
方案2:恒流方式充电,AD采样时需转换成电压值,电路较繁琐且不易控制。
二、系统原理及框图电路包含太阳能电池,DC-DC变换电路,蓄电池,数据采集电路,A/D转换电路,单片机控制电路及状态显示部分。
本设计以ATMEL 系列AT89S51单片机为控制中心的软硬件的结合,使用并联在电池两端的两个串联电阻,以分压方式对蓄电池、太阳能电池的电压进行采样,送到A/D转换得到一个数字信号的电压值,再将信号送入到单片机中进行处理。
单片机输出经光耦电路控制MOSFET管。
控制MOSFET 管导通的方式是脉冲宽度调制(PWM),根据程序设计的载荷变化来调制MOSFET管栅的偏置,达到实现开关功能。
按程序设计当检测到蓄电池的电压低于12V,充电模式为均充,Q1为完全导通状态,也就是导通的脉冲占空比最大;当检测到蓄电池的电压在12V-14.5V,充电模式为浮充,Q1导通与不导通的占空比例变小;当检测到蓄电池的电压等于15V,Q1截止充电停止。
当检测到蓄电池的电压低于10.8V,Q2关闭停止放电。
三、单元电路的设计及参数计算3.1直流稳压输出电路根据题意引入15v直流稳压电源,同时串接电位器,代替电压变化的太阳能电池。
通过分压调节输入电压8v-15v之间以供测试。
同时电源并接100uf和104电容常规去耦。
3.2 A/D采样及转换电路如图所示,电压采集电路使用两个串联的电阻,大小比例为10:1,然后并联在需要检测的电压两端,从两个电阻中间采集电压。
由分压公式得出采集的电压为V R1R21/11,当蓄电池充满电时电压大概为14.5V,计算出采集到的电压为1.3V,符合A/D转换芯片的TLC549的输入值。
AT89S51单片机没有内置的A/D转换模块,因此采集的电压需要经A/D转换才可接入单片机。
此设计采用8位串行A/D转换器芯片TLC549(如图7)。
需要采集的信号从2管脚AIN输入,1管脚的基准电压使用5V,5、6、7三管脚连单片机。
序号可调电源电压AD1采样电压A/D转换理论值实际值理论值实际值1 V V V V V2 V V V V V3 V V V V VVCCREF+1AIN 2REF-GND4CS 5DO 6CLK 7VCC 8U2T LC549AD13.3 继电器控制电路通过P1口的引脚高地电平的变化切换升压电路和普通充电电路,继电器使用HUI KE-HK19F-DC-5V-SHG;线圈电压为5v ,但是由于单片机工作电流太小只有30mA ,不足以驱动继电器,所以增加一个NPN 型三极管的电流放大电路。
3.4 升压电路根据题目要求,设计电路时采用proteus仿真结果Vin=5V-12V,Vout=13.5V;计算过程:首先,快速开关管D取1N5819 ,8PIN电阻取180Ω可用200Ω和2KΩ电阻:Vces=1.0V ton/toff=(Vo+Vf-Vimin)/(Vimin-Vces)Vimin:输入电压不稳定时的最小值Vf=1.2V 快速开关二极管正向压降Rsc(限流电阻):决定输出电流.Rsc=0.33/Ipk Ipk=0.33/Rsc=0.33/0.33=1ALmin(电感):Lmin=(Vimin-Vces)*Ton/ Ipk =220μH Ton =220*10-6*1/(5-1)=55μsCt(定时电容):决定内部工作频率.Ct=0.000 004*Ton(工作频率)=4.0*10 –5* 55*10 –6=2200pf根据库存,Ct电容可取2个102和2个101并联代替Vout(输出电压)=1.25V(1+R1/R2) 可调节电阻实现 6-60V输出由ton/toff=(Vo+Vf-Vimin)/(Vimin-Vces)输出6V时 toff=55*10 –6/((6+1.2-5)/(5-1))=100μs 最大占空比0.55(似乎无看到对最大占空比有规定?)f=1/(ton+toff)=1/(55*10 –6+100*10 –6)=6.45kHZ输出60V时 toff=55*10 –6/((60+1.2-5)/(5-1))=3.9μs 最大占空比14.05f=1/(ton+toff)=1/(55*10 –6+3.9*10 –6)=16.98KHZ6.45kHZ,16.98KHZ属于MC34063的0.1~100KHZ正常工作频率范围内..可实现与【Co(滤波电容):决定输出电压波纹系数,Co=Io*ton/Vp-p(波纹系数) Ipk=2*Iomax*T/toff =2*Iomax*(ton./toff+1)取最大占空比0.55 则 Iomax=1/2/(0.55+1)=322.6mA则 Vp-p=100mv Co=0.3226*55**10-6/0.1=177μf可取220μf序号输入电压升压电路输出电压理论值实际值1 V V V2 V V V3 V V V3.5 蓄电池充放电电路电路由防反充二极管D1、滤波电容C1、续流二极管D2、MOSFET 管Q1、滤波电容C2、MOSFET管Q1等构成。
二极管D1是为了防反充,当阴天或晚上蓄电池的电压高于太阳能电池的电压时,D1就生效。
通过控制开关闭合跟断开的时间(即PWM—脉冲宽度调制),就可以控制输出电压。
所使用的MOSFET是电压控制单极性金属氧化物半导体场效应晶体管,所需驱动功率较小。
而且MOSFET只有多数载流子参与导电,不存在少数载流子的复合时间,因而开关频率可以很高,非常适合作控制充放电开关。
设计中采用IRF9540N P沟道MOSFET管,P沟道MOSFET的导通电压Vth<0,由下图可以实现MOSFET的驱动。
当光耦U5导通时,由于Q1的G极电压很小,G极近似接地,Vgs<0,当S极电压达到一定值时,Q1导通。
Q2的原理类似。
电路如图3、6单片机供电电源单片机对电源质量要求严格,只有波形稳定清晰的电源才能使单片机上电复位,否则无法上电复位,晶振不能起振,单片机就不工作。
蓄电池提供的电压是12V ,单片机电源使用5V 电压,因此需要稳压后才能供单片机使用,本设计采用LM7805稳压后得到波形较好的电源才供单片机使用。
4VCC3.8 单片机及外围引脚四、软件设计流程设计流程图五、测试方法和结果六、测试结果分析七、总结八、参考文献[1]康华光,陈大钦,张林;《电子技术基础(模拟部分)》;高等教育出版社[2]黄正轴,龚培等;《实用电器电路识读与元器件应用易学通》;中国电力出版社[3]孙于凯;《555时基电路识图》;电子工业出版社[4]陈永辅;《555集成电路应用800例》;电子工业出版社附录一主要c程序(仅核心部分)#include <reg51.h> //51芯片管脚定义头文件#include <intrins.h> //内部包含 _nop_();#define uchar unsigned char#define uint unsigned intsbit CLK = P0^0; /* AD时钟信号 */sbit CS = P0^2; /* AD片选信号 */sbit DOUT = P0^1; /* 数据输出 */sbit FuZai = P1^1 ;sbit PWM = P1^0 ;sbit LED1 =P2^0;sbit LED2 =P2^1;uchar t0,battery_v;void delay(uint n) //延时函数{while(n--){_nop_();}}/*************************************/void init()//初始化函数{TMOD=0x01;TH0=(65536-50)/256;TL0=(65536-50)%256;EA=1;ET0=1;PWM=0;LED1=1;LED2=1;}/***********************************/uchar adc_549(void) //AD转换{uint data_out=0;uchar i;CS = 1;_nop_();CS = 0;for (i=0; i<8; i++) /* 读取8位数据 */{CLK = 0;data_out = (data_out<<1)|DOUT;CLK = 1;_nop_();}CLK = 0;CS = 1;delay(3); /* 延时21us以上 */ return(data_out);}/**********************************/void main(void){init();while(1){battery_v=adc_549();FuZai=1;//打开负载if(battery_v>186)//蓄电池电压大于10V{LED1=1;LED2=0;if(224>battery_v>204){TR0=1; //开启固定PWM充电if(t0==5){PWM=1;}if(t0==12){t0=0;PWM=0;}}else{TR0=0;LED1=1;LED2=1;}}else{LED1=0;LED2=1;FuZai=0;//关闭负载}}}void timer0() interrupt 1 //定时器0,用来产生PWM{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0++;}附录二主要元器件介绍AT89S51单片机AT89S51单片机是ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案[1]。