Các đèn báo chỉ thị đúng với các trạng thái nạp, giúp cho ngƣời sử dụng biết đƣợc acquy đã đầy hay chƣa.
Thời gian nạp đúng so với dòng nạp tiêu chuẩn (1/10 dung lƣợng định mức của acquy) từ 12÷13h. Nếu chọn dòng IMAX =1/5 dung lƣợng định mức của acquy thì nạp mất 3÷4h.
Điện áp và dòng nạp gần đúng so với tính toán và đồ thị biểu diễn chúng ở Hình 3.10.
Điện áp nạp chỉ thay đổi rất nhỏ, còn cƣờng độ dòng điện sẽ thay đổi rất nhiều khi cƣờng độ bức xạ thay đổi trong một khoảng nhất định.
Ngoài ứng dụng nạp từ PIN, mạch có chế độ nạp thẳng từ điện lƣới 220V dùng cho các bộ lƣu điện….
Với khả năng tự động điều chỉnh dòng điện và điện áp nạp cho acquy nó đã tránh gây sunfat hóa các bản cực làm hỏng acquy, làm tăng tuổi thọ của acquy so với việc sử dụng các mạch nạp acquy ngoài thị trƣờng hiện nay.
Khi gần đầy nó tự động giảm dần dòng nạp để không làm cho acquy bị sôi, tránh gây cháy nổ.
Ngoài ra, ở cuối mỗi chu kỳ nạp bộ nạp còn cung cấp một chế độ nạp bảo trì với dòng điện nhỏ để đảm bảo dung lƣợng acquy luôn là tối đa. Còn ở các bộ nạp acquy thông thƣờng hầu nhƣ là ngƣời sử dụng phải ngắt acquy ra khỏi bộ nạp khi acquy đầy hoặc bộ nạp sẽ tự ngắt hoàn toàn, không cung cấp chế độ nạp bảo trì.
Một số điểm hạn chế:
- Để xây dựng một hệ thống pin năng lƣợng mặt trời hoàn chỉnh cần phải có sự phối hợp chặt chẽ giữa các phần, tuy nhiên vì điều kiện nhóm Sinh viên làm tách ra từng Đề tài nên gây ra những khó khăn trong phần kết hợp lại, do đó phần hoàn chỉnh đồng bộ hệ thống có nhiều điểm chƣa hợp lý.
- Bộ nạp acquy có dòng nạp còn nhỏ, do hệ thống chỉ dùng tấm pin có công suất 70W. Nếu có nhiều tấm pin gép song song thì bộ nạp có thể có dòng nạp thiết kế lên tới 15A.
KẾT LUẬN
“Mạch nạp acquy và acquy dùng trong hệ thống pin mặt trời” là một công cụ giúp tối ƣu hóa quá trình chuyển hóa năng lƣợng mặt trời thành điện năng. Hiện nay, có rất nhiều mạch nạp acquy thông minh khác nhau tùy thuộc vào tính năng mà ngƣời sử dụng mong muốn và nhà sản xuất cung cấp.
Trong thời gian làm đồ án vừa qua, em đã nghiên cứu về mạch nạp acquy thông minh trong hệ thống pin năng lƣợng mặt trời. Theo đó:
Về mặt lý thuyết em đã:
- Tìm hiểu về các hệ thống pin mặt trời trong thực tế. - Nghiên cứu về các loại acquy phổ biến hiện nay. - Tìm hiểu về vi điều khiển PIC.
- Tìm hiểu về một số IC điều khiển nạp acquy thông minh. Về mặt thực nghiệm:
- Lắp ráp thử nghiệm thành công hai loại mạch nạp bằng IC UC3906 và bq2031. - Thiết kế và xây dựng đƣợc mô hình mạch nạp acquy thông minh bằng IC UC3906 cho cả điện lƣới xoay chiều và điện từ pin mặt trời.
- Cùng với nhóm 4 Sinh viên đã kết hợp và xây dựng hoàn chỉnh một mô hình hệ thống pin năng lƣợng mặt trời.
Trong tƣơng lai, em sẽ tiếp tục xây dựng và lắp ráp một bộ nạp acquy hoàn thiện hơn, có nhiều tính năng thông minh hơn với giá cả phù hợp để có thể áp dụng vào thực tế một cách có hiệu quả.
TÀI LIỆU THAM KHẢO
[1]. Năng lƣợng mặt trời lý thuyết và ứng dựng (PGS.TS. Hoàng Dƣơng Hùng). [2]. Tài liệu vi điều khiển PIC 16F877A (Nguyễn Văn Tình).
[3]. Thiết kế bộ nạp acquy tự động ổn dòng và ổn áp (Đỗ Khoa Tuấn).
[4]. Solar Electricity Handbook, 2010 Edition: A Simple Practical Guide to Solar Energy - Designing and Installing Photovoltaic Solar Electric Systems. [5]. http://focus.ti.com/docs/prod/folders/print/uc3906.html (Website).
PHỤ LỤC Chƣơng trình cho vi điều khiển PIC16F877A:
/*********************************************************** ADC - VOLTMETER & AMPEMETER & CONTROL MODULE PV VERSION 2011
HANOI UNIVERSITY OF INDUSTRY PIC16F877A MICROCHIP
4mhz CRYSTAL
mikroC COMPLIER FOR PIC
************************************************************/ /*=================== Khai bao ham =====================*/ void convert(long value,int i,char *text,char x);
void init(void); void interrupt(void); void dieu_khien(void);
void write_ds1307(unsigned short address,unsigned short w_data); unsigned short read_ds1307(unsigned short address);
unsigned char int_bcd(int x); int bcd_int(int x);
/*============== Khai bao bien toan cuc =====================*/ long volt_oku,ampe_oku,vlong, along;
unsigned short sec;
unsigned short minute,tg1,tg2; unsigned short hour;
unsigned short day; unsigned short date; unsigned short month; unsigned short year; unsigned short data;
/*===================== Chi tiet cac ham ====================*/ void init(void) { PORTC=0X00; TRISC=0X18; PORTB=0X00; TRISB=0Xff; PORTD=0X00; TRISD=0X00;
INTCON = 0x90; // Mo ngat toan cuc OPTION_REG=0x87;
Lcd_Config(&PORTD,2,3,0,7,6,5,4); // Cau hinh(Port, Rs, E, Rw, D7 -:- D4) Lcd_Init(&PORTD); // Khoi tao LCD
Lcd_Cmd(Lcd_CLEAR); // Xoa man hinh
Lcd_Cmd(Lcd_CURSOR_OFF); // Tat nhap nhay con tro ADCON1 = 0x80; // ADC_Int Vref = Vdd
TRISA = 0xFF; // PORTA set pin as input - ADC to work Delay_ms(500);
I2C_Init(100000); // DS1307 I2C is running at 100KHz
write_ds1307(0,int_bcd(80)); // Reset second to 0 sec. and stop Oscillator write_ds1307(1,int_bcd(10)); // Write min 27
write_ds1307(2,int_bcd(17)); // Write hour 14
write_ds1307(3,int_bcd(7)); // Write day of week 2:Monday write_ds1307(4,int_bcd(27)); // Write date 17
write_ds1307(5,int_bcd(5)); // Write month 6 June write_ds1307(6,int_bcd(11)); // Write year 8 --> 2008
write_ds1307(0,int_bcd(0)); // Reset second to 0 sec. and start Oscillator }
/*---*/ void interrupt()
{
{
mode=mode+1; flag_time = 1;
INTCON.INTF = 0; // Xoa co ngat ngoai } } /*---*/ void dieu_khien() { while(mode==1) { if(PORTB.F1==1) PORTC.F0=1; else PORTC.F0=0; if(PORTB.F2==1) PORTC.F1=1; else PORTC.F1=0; if(PORTB.F3==1) PORTC.F5=1; else PORTC.F5=0; if(PORTB.F4==1) PORTC.F6=1; else PORTC.F6=0; } } /*---*/ void write_ds1307(unsigned short address,unsigned short w_data) {
short int status;
I2C_Start(); // Issue I2C start signal
I2C_Wr(0xD0); // Send byte via I2C (device address + W) I2C_Wr(address); // Send byte (address of DS1307 location)
I2C_Wr(w_data); // Send data (data to be written) I2C_Stop(); // Issue I2C stop signal
status=I2C_Wr(0xd0); while(status==1) { I2C_Start(); status=I2C_Wr(0xd0); } } /*---*/ unsigned short read_ds1307(unsigned short address)
{
I2C_Start();
I2C_Wr(0xd0); // Address 0x68 followed by direction bit I2C_Wr(address); I2C_Repeated_Start(); I2C_Wr(0xd1); // 0x68 followed by 1 --> 0xD1 data=I2C_Rd(0); I2C_Stop(); return(data); } /*---*/ unsigned char int_bcd(int x)
{ char N[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; return ((N[x/10]<<4)+N[x%10]); } /*---*/ int bcd_int(int x) { return (((x>>4)&0x0f)*10+(x&0x0f)); }
/*---*/ void convert(long value,int i,char *text,char x)
{
unsigned char va; value= value/1023; Lcd_Out(i,2,text); va = value / 1000; // 10 Volt-Ampe Lcd_Chr(i,9,48+va); va = (value / 100)%10; // 1 Volt-Ampe Lcd_Chr(i,10,48+va); Lcd_Chr(i,11,'.'); va = (value / 10) % 10; // 0.1 Volt-Ampe Lcd_Chr(i,12,48+va); va = value % 10; // 0.01 Volt-Ampe Lcd_Chr(i,13,48+va); Lcd_Chr(i,15,x); // Unit }
/*==================== Chuong trinh chinh ================*/ void main() { int j; init(); Lcd_Out(1,4,"WELCOME..."); delay_ms(1500); Lcd_Cmd(LCD_CLEAR); mode=0; flag_time =0;
tg1= 10; // khi nap nho nhap lai gia tri de lam moc while(1)
{
volt_oku=0; ampe_oku=0;
for(j=0;j<100;j++) {
volt_oku=(long)ADC_read(0) + volt_oku; // ADC_read from chanel 0 ampe_oku=(long)ADC_read(1) + ampe_oku; // ADC_read from chanel 1 }
vlong = volt_oku * 50; // Convert to bcd Volt Vref=5V convert(vlong,1,"VOLT: ",'V');
along = ampe_oku * 5; // Convert to bcd Ampe Vref=5V convert(along,2,"AMPE: ",'A');
sec=read_ds1307(0); // Read second minute=read_ds1307(1); // Read minute tg2=minute;
tg2=bcd_int(tg2);
hour=read_ds1307(2); // Read hour day=read_ds1307(3); // Read day date=read_ds1307(4); // Read date month=read_ds1307(5); // Read month year=read_ds1307(6); // Read year
if(tg2-tg1==1) // Dat thoi gian hieu chinh {
Lcd_Cmd(Lcd_CLEAR);
Lcd_Out(1,1,"Controling Motor"); PORTC.F0=1;
Delay_ms(10000); // Thoi gian tinh toan cho dong co quay PORTC.F0=0;
tg1=tg2;
Lcd_Cmd(Lcd_CLEAR); }
if (flag_time == 1) // Che do hieu chinh bang tay (khi xay ra ngat) {
Lcd_Cmd(Lcd_CLEAR);
dieu_khien(); flag_time =0; mode=0; Lcd_Cmd(Lcd_CLEAR); } Delay_ms(1); } }