Autorul poate fi contactat la adresa: mihai.vasiliu.93@gmail.com
Proiectul constă în realizarea unui dispozitiv de măsură a capacității unui element galvanic (ZnMnO2, NiMH, NiCd, Li-Ion etc.) prin descărcarea acestuia la curent constant reglabil și monitorizarea tensiunii și timpului de descărcare pe PC prin interfața RS232C. Dispozitivul este util pentru a compara capacitatea înscrisă de producător pe baterie cu capacitatea reală și pentru a testa performanțele bateriei în diferite niveluri de consum.
Proiectul este o aplicație practică a unui Consumator de Curent Constant.
Plăcuța de laborator va fi conectată la un LCD cu caractere 16×2 pe care se va afișa continuu intensitatea curentului prin baterie, tensiunea bateriei, intensitatea aleasă de utilizator și modul de funcționare.
Input-ul utilizatorului se face printr-un rotary encoder cu care se poate varia intensitatea și un buton de start/stop.
Trimiterea datelor pentru logging (opțional) se va face prin serial către un PC.
Controlul analogic cu LM324 este complementar firmware-ului și ajută la menținerea unei intensități cât mai constante.
Descrierea ciruitului
Piesa de bază a circuitului este N-MOSFET-ul IRF1404, care asigură controlul curentului prin bateire. Criteriile de alegere au fost Rds mică (0,004ohm), Vdss de 40V, curent mare Ids = 202A și Toperare de 175*C, ideal pentru această aplicație.
Rezistența de putere este necesară pentru a asigura controlul corect (feedback pentru amplificatorul operațional) al intensității cât și ca rezistență shunt pentru a măsura curentul cu ajutorul microcontroller-ului. Practic, la curent mare, ea este principalul element disipativ de căldură, avantaj: Toperare max 250*C.
Amplificatorul operațional LM324N este folosit în buclă de reacție negativă pentru a controla și menține constant curentul, mai precis, tensiunea de poartă a tranzistorului MOS. Principiu de funcționare: AO va face „tot ce îi stă în putință ca V+ = V-”, adică va modifica intensitatea prin baterie după cum ne dorim.
Condensatoarele C1 și C2 sunt folosite ca filtre trece-jos, deoarece semnalul de control de la microcontroller este de tip PWM, cu o frecvență de aprox 7,8kHz.
Ca și tensiune rail pozitiv pentru AO s-a folosit o mini-sursă în comutație ce generează 12Vcc. Astfel s-a putut realiza tot circuitul alimentat doar prin USB.
Lista de piese
Firmware microcontroller
Ca mediu de programare am folosit Atmel Studio 6.2 și programator AVRISP mkII.
Acțiunea executată la infinit de microcontroller este de a citi analog tensiunea pe baterie și intensitatea prin aceasta, urmând ca pe baza acestor date să se ajusteze ieșirea PWM pentru a menține o intensitate constantă prin baterie. Valorile citite sunt calculate ca medie a 10 citiri succesive pentru a asigura o valoare consistentă. Ajustarea intensității bateriei se face continuu, comparând intensitatea curentă cu cea aleasă de utilizator și modificând PWM corespunzător. Astfel, dacă Ibat < Iset se va crește factorul de umplere până când cele două devin egale, respectiv și viceversa.
Citirea rotary encoder și butonului de start/stop se fac folosind întreruperi de I/O. Direcția de rotație a butonului este determinată de starea anterioară și starea curentă pe baza unui tabel de lookup. Trimiterea datelor pe serială se face tot prin întrerupere la primirea unui semnal din partea PC-ului.
Timer-ul 0 este folosit ca generator de PWM, la o frecvență de 7,8kHz, iar timer-ul 1 este folosit pentru a face refresh pe LCD deoarece se dorește ca datele să nu se actualizeze pe ecran de mai mult de 2-3 ori pe secundă.
Configurarea interfeței seriale este: 9600,n,8,1. Comenzile acceptate de dispozitiv pe serială sunt:
Comanda | Descriere |
---|---|
D | Citește un pachet de date de forma intensitate,tensiune |
R | Pornește achiziția de date |
S | Oprește achiziția de date |
Software PC
Mediul de programare pentru partea de PC a fost Visual Studio 2013, în limbaj Visual Basic.
Software-ul gasește automat porturile serial disponibile și permite conectarea la cel corespunzător. Butonul start/stop activează tester-ul hardware și începe achiziția de date la intervalul de timp specificat. Datele pot fi salvate în format *.csv și pot si importate în Excel unde se poate crea curba de descărcare a bateriei la curent constant.
În urma testelor și măsurătorilor efectuate, dispozitivul funcționează fără probleme cu curenți de până la 2A în mod continuu și pentru perioade scurte, cu curenți de până la 5A.
Temperaturile resitenței de putere și a tranzistorului MOS nu depășesc 75*C pentru condițiile de mai sus.
Precizia măsurătorilor este de 1%, iar rezoluția de două zecimale. Rata de refresh a display-ului este de 2-3 actualizări pe secundă, iar pentru citirea datelor de pe serial se recomandă cereri la interval de minim 1 secundă.
Exemplu de grafic de descărcare realizat în Microsoft Excel:
Capacitatea bateriei se calculează în felul următor, din grafic:
C = 1A * 50s = 1000mA * 0.01388h = 13.88mAh
Poză prototip:
Proiectul funcționează la parametrii așteptați.
Pe viitor doresc extinderea proiectului și transformarea sa într-un consumator de curent constant, respectiv de putere constantă ce va putea lucra cu tensiuni de până la 30V și curenți de 5A cu o răcire adecvată. De asemenea și îmbunătățirea software-ului de PC pentru crearea automată a graficelor și calcularea capacității bateriei.
Sursa firmware microcontroller: bat_tester.zip
Sursa software PC: batview.zip
Exemplu date format csv: bct_data.zip
Data | Observații |
---|---|
20/03/2015 | Idee plan de funcționare bloc |
03/04/2015 | Docmunetare etaj analogic |
05/04/2015 | Testat etaj analogic |
18/04/2015 | Testat decodare rotary encoder |
27/04/2015 | Lipit piese plăcuța de bază |
28/04/2015 | Actualizat schema bloc și resurse |
15/05/2015 | Scriere software pt. micro. |
16/05/2015 | Scriere software pt. PC |
17/05/2015 | Adăugat schemă electronică |
19/05/2015 | Descriere schemă și software |