电能收集充电器Word格式文档下载.docx
《电能收集充电器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电能收集充电器Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
由于51系列单片机面世时间较早,因此虽然价格便宜易使用,但是有诸如功耗高、速度低、内部集成的设备少等一系列的缺点。
【方案二】采用MSP430F系列作为控制核心。
MSP430系列单片机功耗很低,且集成的设备也很丰富,但其价格较贵,尤其是配套的开发设备价格更是高昂,限制了MSP430单片机的性价比,不利于降低成本。
【方案三】采用ATMEGA16L作为控制核心。
AVR是8位的RISC微控制器,它在指令和数据吞吐能力方面比传统的CISC结构要快很多倍。
AVR具有很丰富的片内模拟和数字外设,具有较强的数据处理能力。
且其售价较低,编程器也可自制,因此性价比很高,有利于降低成本。
【方案选择】430系列虽然功耗很低,但其编程器和开发板价格较高;
51系列单片机虽然上手容易,且价格低廉,但性能低下;
而属于AVR系列的ATMEGA16L单片可以自制编程器,且性能较强,因此性价比颇高。
考虑到在满足需求的情况下尽量节约成本,故本设计采用ATMEGA16L作为控制单元核心。
1.2.4提高效率的设计
【方案一】采用新技术,如对MOSFET采用软开关工作方式,避免开关管在硬开关条件下的较大开关损耗,从而可显著提高转换器的效率,或采用同步整流方式降低续流管上的损耗;
可以采用交错式开关对,因其工作相位恰互相相差180°
,可以很好的抵消输出纹波。
【方案二】在设计诸如PCB板等部件时注意细节,如果采用70微米或105微米厚铜层电路板,走线时尽可能粗短,输入滤波电容和输出滤波电容尽可能靠近开关管和电感,以使三者环路面积最小,尽可能减小由纹波电流而产生的损耗;
在制作电感时采用铁硅铝或铁镍钼材料的磁环,相比26材铁粉芯(即常用的黄白环)能显著减小电感线圈铁损,绕线时采用多股漆包线或纱包线,以尽可能减小由趋肤效应导致的铜损。
第二章硬件系统设计
2.1Buck电路
当Es>
3.6V时,需通过升压电路将Es降低到稍大于3.6V,以实现能向电池充电的Es尽可能小。
本设计采用LM2671实现降压过程。
LM2671引脚图及内部结构图及Buck电路见附录一。
其输出电压为
(公式二)
图五
2.2Boost电路
当Es<
3.6V时,需通过升压电路将Es升高到稍大于3.6V,否则无法实现充电过程。
本设计采用MC34063控制芯片,可实现从0.8V升到3.6V。
由电流检测电路的比较输出信号控制其PWM波占空比。
MC34063引脚图和内部结构图以及具体BOOST电路见附件一。
(公式一)
图四
2.4启动电路设计
由稳压管和1/4LM324组成一个锁定电路。
当电压低于2.1V时,将单片机锁定;
当高于2.1V时,解锁单片机(单片机在电压高于2.1V时才能正常工作)。
单片机解锁后,将按照程序设定启动相应转换模块,待模块稳定后接通被充电电池,向其充电。
第三章软件系统设计
系统选用的主控制器是ATMEGA16单片机,软件设计包括主程序和A/D采样子程序两部分。
3.1主程序。
主程序包含有A/D采样子程序。
在AD采样读取成功后对数据进行分析,并选择合适的基准源。
该过程结束后进入低功耗模式,等待下一个采样周期的到来。
3.2A/D采样子程序。
A/D使用通道0进行电流检测。
单片机给A/D发出通道选择信号,然后等待A/D芯片转换数据,最后读取其数据。
主流程A/D子程序图
第四章测试结果分析
4.1测试方案
测试方案见附录四,测试所用仪器见附录四
4.2测试结果
4.2.1充电电流Ic测试结果如表1:
(Rs=0.1
Es<
1.1V)
表1充电电流测试
Es/V
0.296
0.509
1.012
1.099
Ic/mA
88
145
302
335
以上数据输出电压用四位半表测得,输出电流用五位半表测得;
输入电压和输入电流均用四位半表测得。
4.2.2充电电流Ic测试结果如表2:
(Rs=1
,
)
1.212
1.515
2.409
2.694
3.004
Ic/A
283
366
649
750
858
4.2.3充电电流Ic测试结果如表3:
(Rs=100
11
13
15
17
20
73.2
94.0
115.2
138.9
177.2
4.2.4升压通电效率
序号
1
2
3
4
5
Es
4.3结果分析:
我们先测试了Es和Ic
第五章总结
经过四天三夜的辛勤努力,我们三人齐心协力完成了题目给出的要求。
但由于时间紧,任务重,系统还存在一些可以改进的地方,如可以采用单片机统一控制升降压电路,以此更节约成本。
经过这次电子设计竞赛,我们在电路的设计、调试方面得到了很好锻炼,更深深地认识到动手实践的重要性,也体会到了团队协作的巨大力量。
在今后的学习生活中,我们将会继续努力提高自身能力,争取更大的进步。
第六章参考文献
《开关稳压器应用技巧》沙占友,马洪涛著;
中国电力出版社,09.2
《开关电源技术与典型应用》路秋生著;
电子工业出版社,09.3
《逆变技术基础与应用》曲学基等著;
电子工业出版社,07.
《逆变电源设计与指导》陈贤忠著,机械工业出版社,08.7
《开关电源设计指南》(英)MartyBrown著;
机械工业出版社,06.1
《模拟电子技术基础简明教程》杨素行主编;
高等教育出版社,06.5
《AVR单片机应用系统开发典型实例》张军著;
中国电力出版社,07.8
《AVR单片机C语言高级程序设计》周兴华著;
中国电力出版社,08.3
《AVR单片机从入门到精通》温正等著;
中国电力出版社09.6
《全国大学生电子设计竞赛获奖作品汇编》北京理工大学出版社,04.8
《全国大学生电子设计竞赛系统设计》黄智伟著;
北京航空航天大学出版社,06.12
第七章附件
附件一:
单元电路图和芯片介绍
1.
Boost电路
MC34063引脚及内部结构图
2.
Buck电路
LM2671引脚及内部结构图
3.
电流检测电路
LM324引脚及内部结构
附件三:
测试使用的仪器设备
1.测试方案
2.测试使用的仪器设备
名称
型号
数量
备注
3位半数字万用表
UNI-T
深圳胜利公司
函数信号发生器
GFG-8216A
南京无线电仪器厂
逻辑笔
双踪示波器
YB4365
江苏扬中电子仪器厂
数字示波器
TDS210
广州致远电子有限公司
附件四:
题目单
一、任务
设计并制作一个电能收集充电器,充电器及测试原理示意图如图1。
该充电器的核心为直流电源变换器,它从一直流电源中吸收电能,以尽可能大的电流充入一个可充电池。
直流电源的输出功率有限,其电动势Es在一定范围内缓慢变化,当Es为不同值时,直流电源变换器的电路结构,参数可以不同。
监测和控制电路由直流电源变换器供电。
由于Es的变化极慢,监测和控制电路应该采用间歇工作方式,以降低其能耗。
可充电池的电动势Ec=3.6V,内阻Rc=0.1Ω。
二、要求
1、基本要求
(1)在Rs=100Ω,Es=10V~20V时,充电电流Ic大于(Es-Ec)/(Rs+Rc)。
(2)在Rs=100Ω时,能向电池充电的Es尽可能低。
(3)Es从0逐渐升高时,能自动启动充电功能的Es尽可能低。
(4)Es降低到不能向电池充电,最低至0时,尽量降低电池放电电流。
(5)监测和控制电路工作间歇设定范围为0.1s~5s。
2、发挥部分
(1)在Rs=1Ω,Es=1.2V~3.6V时,以尽可能大的电流向电池充电。
(2)能向电池充电的Es尽可能低。
当Es≥1.1V时,取Rs=1Ω;
当Es<1.1V时,取Rs=0.1Ω。
(3)电池完全放电,Es从0逐渐升高时,能自动启动充电功能(充电输出端开路电压
>3.6V,短路电流>0)的Es尽可能低。
当Es<1.1V时,取Rs=0.1Ω。
(4)降低成本。
(5)其他。
附件二:
源程序代码
//////////////////////////////////////////////
#include
<
iom16v.h>
#include<
qidongAD.h>
zhongduan.h>
digonghao.h>
macrose.h>
#define
uchar
unsigned
char
uint
int
OUT1_0
(PORTB=PORTB&
0xfe)
OUT1_1
(PORTB=PORTB|0x01)
OUT2_0
0xfd)
OUT2_1
(PORTB=PORTB|0x02)
value,dis_val;
i,flag;
CNT;
int
t=0;
/****************************************/
void
port_init(void)
{
PORTA
=
0x7F;
DDRA
PORTB
0xFF;
DDRB
PORTC
DDRC
PORTD
DDRD
}
/************************************/
timer0_init(void)
//定时器0初始化
{
TCNT0
0x83;
//1ms定时初值
OCR0
0x7D;
//定时器0的计数预分频
TCCR0
0x03;
//
}
/*************************************/
#pragma
interrupt_handler
timer0_ovf_isr:
10
//T/C0中断服务函数
timer0_ovf_isr(void)
//重装1ms定时初值
if(++i>
3)i=0;
switch(i)
//case
0:
PORTA=SEG7[dis_val%10];
PORTC=ACT[0];
break;
1:
PORTA=SEG7[(dis_val/10)%10];
PORTC=ACT[1];
///case
2:
PORTA=SEG7[(dis_val/100)%10];
PORTC=ACT[2];
//
case
3:
PORTA=SEG7[dis_val/1000];
PORTC=ACT[3];
default:
timer1_init(void)
TCNT1H
0xE7;
//50ms定时初值
TCNT1L
0x96;
//
TCCR1B
//定时器0的计数预分频
/***************************************************/
timer1_ovf_isr:
9
//T/C1中断服务子函数
timer1_ovf_isr(void)
//重装50ms定时初值
/****************************************************/
adc_init(void)
ADMUX
0xC0;
//通道0
ACSR
0x80;
//关掉模拟比较器
ADCSR
0xE3;
adc_isr:
15
//ADC中断服务子函数
adc_isr(void)
//conversion
complete,
read
value
(int)
using...
value=ADCL;
value|=(int)ADCH
8;
flag=1;
/***************************************/
init_devices(void)
//芯片初始化
port_init();
timer0_init();
timer1_init();
adc_init();
TIMSK
0x05;
SREG=0x80;
delay(uint
k)
//延时函数
i,j;
for(i=0;
i<
k;
i++)
{
for(j=0;
j<
140;
j++);
delay_ms(unsigned
t)
for(;
t>
0;
t--);
/******************************************/
conv(uint
i)
//数据转换
long
x;
y;
x=(5000*(long)i)/1023;
y=(uint)x;
return
}
benchmark(void)
char
n=0;
switch(n)
{DDRB=0x80;
//B7脚设为输出,其他较输入
PORTB=0x00;
//B7脚输出低电平
DDRC=0x00;
//C端口设为输入
PORTC=0x00;
DDRD=0x00;
//D端口设为输出
PORTD=0x00;
delay_ms(100000);
n=1;
;
DDRB=0x00;
DDRD=0x02;
//D0脚输出低电平
n=2;
/;
DDRD=0x01;
//D1
n=3;
DDRD=0x04;
//D2
n=4;
4:
DDRD=0x08;
//D3
n=5;
5:
DDRD=0x10;
//D4
n=6;
6:
DDRD=0x20;
//D5
n=7;
7:
DDRD=0x40;
//D6
n=8;
8:
DDRD=0x80;
//D7
n=9;
/////
9:
DDRC=0x01;
//C0
n=10;
10:
DDRC=0x02;
//C1
n=11;
11:
DDRC=0x04;
//C2
n=12;
12:
DDRC=0x08;
//C3
n=13;
13:
DDRC=0x10;
//C4
n=14;
14: