- Zašto nam treba ispitivač kapaciteta baterije?
- Komponente potrebne
- Dijagram kruga ispitivača kapaciteta baterije Arduino
- Arduino program za mjerenje kapaciteta baterije
- Poboljšanja točnosti
- Izgradnja i ispitivanje kruga
Pojavom tehnologije, naši elektronički uređaji i uređaji postaju sve manji i funkcionalniji i složeniji. Ovim povećanjem složenosti povećao se i zahtjev za snagom kruga i u našoj težnji da uređaj učinimo što manjim i što prijenosnijim potrebna nam je baterija koja može pružati jaku struju dulje vrijeme i istodobno vrijeme, težite puno manje kako bi uređaj trebao ostati prenosiv. Ako želite znati više o baterijama, također možete pročitati ovaj članak o osnovnim terminologijama baterija.
Od mnogo različitih vrsta dostupnih baterija, olovne kiseline, Ni-Cd baterije i Ni-MH baterije nisu prikladne, jer teže ili ne mogu osigurati struju potrebnu za našu primjenu, a to nam ostavlja litij-ionske baterije što može osigurati veliku struju, a težinu održavati niskom, a veličinu kompaktnom. Prije toga smo također izgradili 18650 punjač i pojačivački modul za bateriju i sustav praćenja baterija zasnovan na IoT-u, možete ih provjeriti ako vas zanima.
Zašto nam treba ispitivač kapaciteta baterije?
Na tržištu postoje mnogi dobavljači baterija koji prodaju jeftine izbacivačke verzije Li-ion baterija tvrdeći bizarne specifikacije s vrlo niskom cijenom koja je predobra da bi bila istina. Kada kupite ove ćelije, one uopće ne rade ili ako rade, kapacitet punjenja ili trenutni protok toliko su mali da uopće ne mogu raditi s aplikacijom. Pa kako testirati litijsku bateriju ako ćelija nije jedan od ovih jeftinih drobija? Jedna od metoda je mjerenje napona otvorenog kruga bez opterećenja i opterećenja, ali to uopće nije pouzdano.

Tako ćemo izgraditi ispitivač kapaciteta baterije 18650 za Li-Ion 18650 ćeliju koji će isprazniti potpuno napunjenu ćeliju 18650 kroz otpornik dok će mjeriti struju koja protiče kroz otpor kako bi se izračunao njegov kapacitet. Ako ne dobijete traženi kapacitet baterije dok je napon ćelije unutar navedenih granica, tada je ta ćelija neispravna i ne biste je trebali koristiti jer će se stanje napunjenosti ćelije vrlo brzo isprazniti pod opterećenjem, stvarajući lokalna strujna petlja ako se koristi u baterijama što rezultira grijanjem i moguće požarom. Pa krenimo odmah u to.
Komponente potrebne
- Arduino Nano
- LCD s 16 × 2 znaka
- LM741 OPAMP IC
- 2,2Ω, 5W otpornik
- 7805 IC pozitivnog regulatora napona
- Napajanje od 12V
- Potenciometar trimera 10kΩ
- Kondenzator 0,47uF
- Otpornik 33kΩ
- Priključak za bačvu istosmjerne struje
- Vijčani terminali PCB-a
- IRF540N N-kanalni Mosfet IC
- Perfboard
- Komplet za lemljenje
- Hladnjaci

Dijagram kruga ispitivača kapaciteta baterije Arduino
Kompletna shema sklopa za ispitivač kapaciteta baterije 18650 prikazana je u nastavku. Objašnjenje sklopa je sljedeće -

Računska i prikazna jedinica:
Ovaj je krug dalje podijeljen u dva dijela, prvi je nisko napajanje od 5 V za Arduino Nano i 16 × 2 alfanumerički LCD zaslon i njihove veze za prikaz rezultata mjerenja struje i napona u stvarnom vremenu. Krug napaja 12V napajanje pomoću SMPS-a ili možete koristiti 12V bateriju, a maksimalna struja će biti oko 60-70mA za napajanje Arduina i LCD zaslona.

Za snižavanje napona na 5V koristit ćemo linearni regulator napona koji može potrajati i do 35V i treba mu najmanje 7,5V ulaznog napajanja kako bi se osiguralo regulirano napajanje od 5V, a višak napona odvodi se kao toplina, dakle ako vaš ulaz napon LM7805 IC regulator napona je veći od 12V, a zatim razmislite o dodavanju hladnjaka kako se ne bi oštetio. LCD se napaja napajanjem od 5 V iz 7805, a povezan je s Arduinom i radi u 4-bitnom načinu. Također smo dodali potenciometar brisača od 10 k Ω za kontrolu kontrasta LCD zaslona.
Strujni krug stalnog opterećenja:
Drugi je krug opterećenja s konstantnom strujom zasnovan na PWM-u kako bi struja opterećenja koja prolazi kroz otpornik kontrolirana od nas i bila konstantna, tako da nema pogreške koja se uvlači zbog promjene struje s vremenom kako napon ćelije opada. Sastoji se od LM741 OPAMP IC i IRF540N N-Channel MOSFET-a, koji kontrolira struju koja prolazi kroz MOSFET uključivanjem i isključivanjem MOSFET-a prema naponskoj razini koju smo postavili.

Opcijsko pojačalo radi u načinu usporedbe,tako u ovom načinu rada. izlaz op-pojačala bit će visok kad god je napon neinvertirajućih pinova op-pojačala veći od invertirajućeg pina. Slično tome, ako je napon na invertirajućem pin-u op-pojačala veći od neinvertirajućeg pina, izlaz op-ampera će se povući prema dolje. U danom krugu, neinvertirajući napon razine pina kontrolira se D9 PWM pinom Arduino NANO-a, koji se prebacuje na frekvenciju od 500Hz koja se zatim propušta kroz niskopropusni RC filtar kruga s vrijednošću otpora 33kΩ i kondenzatorom kapaciteta 0,47 uF, za pružanje gotovo konstantnog istosmjernog signala na neinvertirajućem pinu. Obrnuti zatik je povezan s otpornikom opterećenja, koji očitava napon na otporniku i uobičajenom GND. Izlazni pin OPAMP-a spojen je na terminal vrata MOSFET-a kako bi se uključio ili isključio.OPAMP će pokušati izjednačiti napone na oba svoja terminala prebacivanjem spojenog MOSFET-a, tako da će struja koja prolazi kroz otpor biti proporcionalna vrijednosti PWM-a koju ste postavili na D9 pinu NANO-a. U ovom projektu, maksimalna struja, koju sam ograničio, je 1,3A, što je razumno jer je ćelija koju imam 10A kao maksimalna struja
Mjerenje napona:
Maksimalni napon tipične potpuno napunjene Li-Ion ćelije je 4,1 V do 4,3 V, što je manje od ograničenja napona od 5 V analognih ulaznih pinova Arduino Nano-a koji ima više od 10 kΩ unutarnjeg otpora u sebi, tako da možemo izravno povezati Ćelija na bilo koji od analognih ulaznih pinova bez brige o struji koja prolazi kroz njih. Dakle, u ovom projektu moramo izmjeriti napon ćelije kako bismo mogli utvrditi je li ćelija u ispravnom radnom opsegu napona i je li potpuno prazna ili ne.
Moramo izmjeriti i struju koja prolazi kroz otpornik, jer ne možemo koristiti strujni razvodnik, jer će se složenost kruga povećati, a povećanje otpora na putu opterećenja smanjit će brzinu pražnjenja stanice. Korištenje manjih ranžirnih otpornika trebat će dodatni krug pojačala kako bi očitanje napona koje dolazi s njega bilo čitljivo Arduinu.
Dakle, izravno očitamo napon na otporniku opterećenja, a zatim pomoću Ohmovog zakona dijelimo napon dobiven vrijednošću otpornika opterećenja da bi struja prošla kroz njega. Negativni priključak otpornika spojen je izravno na GND, tako da možemo sigurno pretpostaviti da je napon koji čitamo na otporu pad napona na otporniku.

Arduino program za mjerenje kapaciteta baterije
Sada nakon finalizacije hardverskog kruga, prelazimo na Arduino programiranje. Sada, ako na računalu nemate instaliran Arduino IDE, što radite ovdje! Idite na službenu web stranicu Arduino i preuzmite i instalirajte Arduino IDE ili možete kodirati i u bilo kojem drugom uređivaču, ali to je tema za neki drugi dan, zasad se držimo Arduino IDE-a. Sada koristimo Arduino Nano, pa provjerite jeste li odabrali ploču Arduino Nano tako da odete na TOOLS> PLOČE i odaberete tamo ARDUINO NANO, sada odaberite ispravan procesor koji vaš nano ima tako što ćete otići na TOOLS> PROCESSORi dok ste tamo, također odaberite priključak na koji je povezan vaš Arduino na vašem računalu. Koristimo Arduino za pogon alfanumeričkog LCD-a 16 × 2 spojenog na njega i za mjerenje napona ćelije i struje koja teče kroz otpornik opterećenja kao što je objašnjeno u prethodnom odjeljku započinjemo naš kôd deklariranjem datoteka zaglavlja za pogon 16 × 2 Alfanumerički LCD zaslon. Možete preskočiti ovaj odjeljak da biste na kraju stranice dobili potpuno kuhan i poslužen kod, ali podnesite nas dok kôd dijelimo na male odjeljke i pokušavamo objasniti.
Sada kada je definirana datoteka zaglavlja, nastavljamo s deklariranjem varijabli, u kodu ćemo koristiti za izračun napona i struje. Također, moramo definirati pinove koje koristimo za pogon LCD-a i pinove koje ćemo koristiti za dobivanje PWM izlaza i očitavanje analognih napona koji dolaze iz ćelije i otpornika, također u ovom odjeljku.
#include
Sada dolazimo do dijela za postavljanje, ako želite da Arduino cijelo vrijeme bude povezan s računalom i nadgledate napredak pomoću serijskog monitora i ovdje inicijalizirate LCD zaslon. Također će na zaslonu tijekom 3 sekunde prikazati poruku dobrodošlice "Krug kruga ispitivača kapaciteta baterije".
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Postavljanje kursora na prvi stupac i prvi redak. lcd.print ("Kapacitet baterije"); lcd.setCursor (0,1); lcd.print ("krug testera"); kašnjenje (3000); lcd.clear (); }
Sada ne moramo deklarirati Arduino PWM pin kao izlaz kao funkciju AnalogWrite koju ćemo koristiti u našoj glavnoj petlji. Morate definirati vrijednost PWM-a koja će biti zapisana na toj pin u kodu. Pažljivo odaberite vrijednost PWM prema struji pražnjenja koja je potrebna u vašoj aplikaciji. Previše vrijednosti PWM rezultirat će velikom strujom s velikim padom napona u Li-Ion ćeliji, a preniska vrijednost PWM rezultirat će velikim vremenom pražnjenja ćelije. U funkciji glavne petlje očitat ćemo napone na pinovima A0 i A1 jer Arduino ima 10-bitni ADC na ploči, stoga bismo trebali dobiti vrijednosti digitalnog izlaza u rasponu od 0-1023 koje ćemo trebati prilagoditi natrag na Raspon 0-5V množenjem s 5,0 / 1023,0. Provjerite jeste li pravilno izmjerili napon između 5V i GND pinova Arduino Nano-a kalibriranim voltmetrom ili multimetrom jer najčešće regulirani napon nije točno 5,0V, a čak bi i mala razlika u ovom referentnom naponu rezultirala puzanjem pogrešaka u očitanjima napona izmjerite ispravan napon i zamijenite 5,0 u množitelju navedenom gore.
Da bismo objasnili logiku koda, kontinuirano mjerimo napon ćelije i ako je napon ćelije preko gornje granice koju smo odredili u kodu, tada se na LCD-u prikazuje poruka pogreške kako biste znali je li stanica prekomjerno napunjen ili nešto nije u redu s vezom i zaustavlja se napajanje MOSFET zatiča vrata, tako da struja ne može teći kroz otpor opterećenja. Ključno je da prvo potpuno napunite svoju ćeliju prije nego što je povežete na ploču ispitivača kapaciteta kako biste mogli izračunati ukupni kapacitet napunjenosti.
analogWrite (MOSFET_Pin, PWM_VALUE); // očitavanje ulaza na analognom pinu 0: int sensorValue_voltage_Cell = analogRead (A0); // Pretvori analogno očitanje (koje ide od 0 - 1023) u napon (0 - 5 V): plutajući napon = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("NAPON:"); Serial.println (napon); // Ovdje se napon ispisuje na Serial Monitor lcd.setCursor (0, 0); // Postavljanje kursora na prvi stupac i prvi redak. lcd.print ("Napon:"); // Ispis očitanja napona na ekranu lcd.print (napon); kašnjenje (100); int sensorValue_Shunt_Resistor = analogRead (A1); plutajući napon1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); plutajuća struja = napon1 / otpor; Serial.print ("Current:"); Serial.println (trenutno); lcd.setCursor (0,1);// Postavite kursor na prvi stupac i drugi redak (brojanje započinje na 0!). lcd.print ("Current:"); lcd.print (trenutni);
Sada, ako je napon ćelije unutar gornje i donje granice napona koje smo odredili, Nano će očitati trenutnu vrijednost prema gore navedenoj metodi i pomnožiti je s vremenom proteklim tijekom mjerenja i pohraniti je u varijablu kapaciteta koju smo prethodno definirali u mAh jedinicama. Tijekom cijelog tog vremena vrijednosti struje i napona u stvarnom vremenu prikazuju se na priloženom LCD zaslonu, a ako želite, možete ih vidjeti i na serijskom monitoru. Postupak pražnjenja ćelije nastavit će se sve dok napon ćelije ne dosegne ispod donje granice koju smo odredili u programu, a zatim se ukupni kapacitet ćelije prikaže na LCD zaslonu i protok struje kroz otpor zaustavi povlačenjem MOSFET vrata pribadača niska.
else if (napon> BAT_LOW && napon <BAT_HIGH) {// Provjeri je li napon akumulatora unutar sigurne granice millisPassed = millis () - previousMillis; mA = struja * 1000,0; Kapacitet = Kapacitet + (mA * (milisPassed / 3600000.0)); // 1 sat = 3600000ms za pretvaranje u mAh jedinice previousMillis = millis (); kašnjenje (1000); lcd.clear (); }
Poboljšanja točnosti
To je, svakako, dovoljno dobar način za očitavanje napona i struje, ali nije savršen. Odnos stvarnog napona i izmjerenog napona ADC nije linearan i to će dovesti do neke pogreške u mjerenjima napona i struja.
Ako želite povećati točnost rezultata, na grafikonu morate ucrtati vrijednosti ADC-a dobivene primjenom različitih poznatih izvora napona, a zatim odrediti multiplikacijsku jednadžbu pomoću bilo koje metode koja vam se sviđa. Na taj će se način poboljšati točnost i vrlo ćete se približiti stvarnim rezultatima.
Također, MOSFET koji smo koristili nije MOSFET na logičkoj razini, pa mu treba više od 7 V da bi u potpunosti uključio trenutni kanal, a ako izravno na njega primijenimo 5 V, trenutna očitanja bila bi netočna. Ali možete koristiti logičku razinu IRL520N N-Channel MOSFET da biste eliminirali upotrebu napajanja od 12 V i izravno radili s logičkim razinama od 5 V koje imate sa svojim Arduinom.
Izgradnja i ispitivanje kruga

Sada kada smo dizajnirali i testirali različite dijelove našeg kruga na pločici za ploču i nakon što smo se uvjerili da svi rade kako je predviđeno, koristimo Perfboard za lemljenje svih komponenata zajedno, jer je to mnogo profesionalnija i pouzdanija metoda za ispitivanje kruga. Ako želite, možete dizajnirati vlastiti PCB na AutoCAD Eagle, EasyEDA ili Proteus ARES ili bilo kojem drugom softveru koji vam se sviđa. Arduino Nano, 16 × 2 alfanumerički LCD i LM741 OPAMP montirani su na ženski Bergstik kako bi se kasnije mogli ponovno koristiti.

Osigurao sam napajanje od 12 V kroz DC priključak za barel utikač za strujni krug stalnog opterećenja, a zatim se uz pomoć LM7805 osiguravaju 5 V za Nano i LCD zaslon. Sada uključite krug i prilagodite lonac za trimer da biste postavili razinu kontrasta LCD zaslona, na LCD zaslonu biste već trebali vidjeti pozdravnu poruku, a zatim ako je razina napona ćelije u radnom području, tada je trenutna -napon i struja iz baterije bit će prikazani tamo.

Ovo je vrlo osnovni test za izračunavanje kapaciteta stanice koju koristite, a može se poboljšati uzimanjem podataka i pohranjivanjem u Excel datoteku radi obrade i vizualizacije podataka grafičkim metodama. U današnjem svijetu koji se temelji na podacima, ova krivulja pražnjenja stanica može se koristiti za izgradnju preciznih prediktivnih modela baterije za simulaciju i uvid u odziv baterije pod opterećenjem bez stvarnog testiranja pomoću softvera poput NI LabVIEW, MATLAB Simulink itd. i čeka vas još puno aplikacija. Kompletni rad ovog projekta možete pronaći u videu ispod. Ako imate bilo kakvih pitanja u vezi s ovim projektom, napišite ih u odjeljak za komentare ispod ili upotrijebite naše forume. Idite i zabavite se s tim, a ako želite, možemo vas uputiti u odjeljak za komentare u nastavku kako dalje od ovog. Do tada Adios !!!
