- Prečo potrebujeme tester kapacity batérie?
- Súčasti sú povinné
- Schéma zapojenia testeru kapacity batérie Arduino
- Program Arduino na meranie kapacity batérie
- Vylepšenie presnosti
- Budovanie a testovanie obvodu
S príchodom technológie sa naše elektronické prístroje a spotrebiče zmenšujú a zmenšujú pomocou funkčnejších a zložitejších aplikácií. S týmto nárastom zložitosti sa zvýšila aj potreba napájania obvodu a v našej snahe o čo najmenšie a prenosné zariadenie potrebujeme batériu, ktorá dokáže poskytovať vysoký prúd po dlhú dobu a súčasne vážte oveľa menej, aby zariadenie malo zostať prenosné. Ak sa chcete dozvedieť viac informácií o batériách, môžete si tiež prečítať tento článok o základných terminológiách o batériách.
Z mnohých dostupných typov batérií nie sú olovené batérie, Ni-Cd batérie a Ni-MH batérie vhodné, pretože buď vážia viac, alebo nemôžu poskytnúť prúd potrebný pre našu aplikáciu. Zostávajú nám teda lítium-iónové batérie ktoré môžu poskytnúť vysoký prúd pri zachovaní nízkej hmotnosti a kompaktnej veľkosti. Predtým sme tiež postavili nabíjačku a zosilňovač batérií 18650 a monitorovací systém batérií založený na IoT. Môžete si ich v prípade záujmu skontrolovať.
Prečo potrebujeme tester kapacity batérie?
Na trhu existuje veľa predajcov batérií, ktoré predávajú lacné vyradené verzie lítium-iónových batérií, ktoré požadujú bizarné technické parametre s veľmi nízkou cenou, čo je príliš dobré na to, aby to bola pravda. Keď kupujete tieto články, buď vôbec nepracujú, alebo ak fungujú, kapacita nabíjania alebo tok prúdu je taká nízka, že s aplikáciou vôbec nemôžu pracovať. Ako teda otestovať lítiovú batériu, ak článok nie je jedným z týchto lacných knockoffov? Jednou z metód je meranie napätia naprázdno bez záťaže a zaťaženia, čo však nie je vôbec spoľahlivé.
Chystáme sa teda postaviť tester kapacity batérie 18650 pre Li-Ion 18650 Cell, ktorý vybije plne nabitý článok 18650 cez rezistor a bude merať prúd prúdiaci cez rezistor na výpočet jeho kapacity. Ak nedosiahnete požadovanú kapacitu batérie, zatiaľ čo napätie článku je v stanovených medziach, je tento článok chybný a nemali by ste ho používať, pretože stav nabitia článku sa pri zaťažení vyčerpá veľmi rýchlo a vytvorí sa miestna prúdová slučka, ak sa používa v batérii, čo vedie k zahriatiu a možnému požiaru. Poďme teda do toho priamo.
Súčasti sú povinné
- Arduino Nano
- 16 × 2 znakový LCD
- LM741 OPAMP IC
- 2,2 Ω, 5 Wattový rezistor
- 7805 IC regulátora pozitívneho napätia
- Napájanie 12V
- Potenciometer trimra 10kΩ
- Kondenzátor 0,47uF
- Rezistor 33kΩ
- Konektor DC napájania hlavne
- Skrutkové svorky DPS
- IRF540N N-kanálový Mosfet IC
- Drevená doska
- Spájkovacia súprava
- Chladiče
Schéma zapojenia testeru kapacity batérie Arduino
Kompletná schéma zapojenia testera kapacity batérie 18650 je uvedená nižšie. Vysvetlenie obvodu je nasledujúce -
Výpočtová a zobrazovacia jednotka:
Tento obvod je ďalej rozdelený na dve časti, prvou je nízke napájanie 5 V pre Arduino Nano a 16 × 2 alfanumerický displej LCD a ich pripojenia na zobrazovanie výsledkov meraní prúdu a napätia v reálnom čase. Obvod je napájaný 12V zdrojom pomocou SMPS alebo môžete použiť 12V batériu, rovnako ako maximálny prúd bude okolo 60-70mA pre napájanie Arduina a LCD obrazovky.
Na zníženie napätia na 5 V použijeme lineárny regulátor napätia, ktorý môže trvať až 35 V a na zabezpečenie regulovaného napájania 5 V je potrebné vstupné napájanie najmenej 7,5 V a nadmerné napätie sa teda rozptýli ako teplo, takže ak je váš vstup napätie LM7805 IC regulátora napätia je viac ako 12V, potom zvážte pridanie chladiča, aby sa nepoškodil. LCD je napájaný z 5V napájaním z 7805 a je pripojený k Arduinu a pracuje v 4-bitovom režime. Tiež sme pridali potenciometer stierača 10k Ω na riadenie kontrastu LCD displeja.
Okruh s konštantným zaťažením:
Druhým je obvod zaťaženia s konštantným prúdom založený na PWM, aby prúd záťaže pretekajúci odporom bol ovládateľný nami a bol konštantný, aby nedochádzalo k plazivej chybe v dôsledku kolísania prúdu v čase, keď napätie článku klesá. Skladá sa z LM741 OPAMP IC a IRF540N N-Channel MOSFET, ktorý riadi prúd prúdiaci cez MOSFET zapínaním a vypínaním MOSFET podľa nami nastavenej úrovne napätia.
Operačný zosilňovač pracuje v komparátornom režime,takže v tomto režime. výstup operačného zosilňovača bude vysoký vždy, keď je napätie neinvertujúceho kolíka operačného zosilňovača vyššie ako invertujúci kolík. Podobne, ak je napätie na invertujúcom kolíku operačného zosilňovača vyššie ako neinvertujúci kolík, bude výstup operačného zosilňovača stiahnutý nadol. V danom obvode je neinvertujúca úroveň napätia kolíka riadená kolíkom D9 PWM modulu Arduino NANO, ktorý spína na frekvencii 500 Hz, ktorá potom prechádza nízkopriepustným RC obvodovým filtrom s hodnotou odporu 33 kΩ a kondenzátorom s kapacitou 0,47 uF, na zabezpečenie takmer konštantného jednosmerného signálu na neinvertujúcom kolíku. Invertujúci kolík je pripojený k záťažovému odporu, ktorý sníma napätie cez rezistor a spoločný GND. Výstupný pin OPAMPu je pripojený k hradlovému terminálu MOSFETu, aby sa zapol alebo vypol.OPAMP sa pokúsi vyrovnať napätie na oboch svojich svorkách prepnutím pripojeného MOSFETu, takže prúd pretekajúci rezistorom bude úmerný hodnote PWM, ktorú ste nastavili na pin D9 na NANO. V tomto projekte je maximálny prúd, ktorý som obmedzil na svoj obvod, 1,3A, čo je rozumné, pretože článok, ktorý mám, je 10A ako jeho maximálny prúdový výkon
Meranie napätia:
Maximálne napätie typického plne nabitého Li-Ion článku je 4,1 V až 4,3 V, čo je menej ako 5V napäťová hranica analógových vstupných pinov Arduino Nano, ktorá má v sebe vnútorný odpor viac ako 10 kΩ, aby sme mohli priamo pripojiť Bunka na ktorýkoľvek z analógových vstupných pinov bez obáv z prúdu, ktorý nimi preteká. V tomto projekte teda musíme zmerať napätie článku, aby sme mohli určiť, či je článok v správnom prevádzkovom rozsahu napätia a či je alebo nie je úplne vybitý.
Musíme tiež zmerať prúd pretekajúci odporom, pretože nemôžeme použiť prúdový skrat, pretože sa zvýši zložitosť obvodu a zvýšenie odporu v ceste zaťaženia zníži rýchlosť vybíjania článkov. Používanie menších bočníkových rezistorov si bude vyžadovať ďalší zosilňovač, aby bolo čítanie napätia prichádzajúce z neho čitateľné pre Arduino.
Takže priamo čítame napätie na záťažovom rezistore a potom pomocou Ohmovho zákona delíme napätie získané hodnotou záťažového rezistora, aby sme dostali prúd, ktorý ním preteká. Záporná svorka rezistora je pripojená priamo k GND, takže môžeme bezpečne predpokladať, že napätie, ktoré čítame na rezistore, je pokles napätia v rezistore.
Program Arduino na meranie kapacity batérie
Teraz po dokončení hardvérového obvodu prechádzame k programovaniu Arduino. Teraz, ak nemáte v počítači nainštalované Arduino IDE, čo tu robíte! Prejdite na oficiálnu webovú stránku Arduino a stiahnite si a nainštalujte Arduino IDE, alebo môžete kódovať aj v akomkoľvek inom editore, ale to je téma na ďalší deň, zatiaľ sa držíme Arduino IDE. Teraz používame Arduino Nano, takže sa uistite, že ste vybrali dosku Arduino Nano tak, že prejdete na TOOLS> BOARDS a tam vyberiete ARDUINO NANO, teraz vyberte správny procesor, ktorý vaše nano má, choďte na TOOLS> PROCESSORa keď ste tam, vyberte tiež port, ku ktorému je vaše Arduino pripojené v počítači. Používame Arduino na pohon 16 × 2 alfanumerického LCD displeja, ktorý je k nemu pripojený, a na meranie napätia článku a prúdu pretekajúceho záťažovým rezistorom, ako je vysvetlené v predchádzajúcej časti, začneme náš kód deklaráciou hlavičkových súborov na pohon 16 × 2 Alfanumerická obrazovka LCD. Túto časť môžete preskočiť, aby ste získali úplne uvarený a doručený kód na konci stránky, ale vydržte, kým kód rozdelíme na malé časti a pokúsime sa to vysvetliť.
Teraz, keď je definovaný hlavičkový súbor, prejdeme na deklarovanie premenných, ktoré v kóde použijeme na výpočet napätia a prúdu. Musíme tiež definovať piny, ktoré používame na pohon LCD, a piny, ktoré použijeme na poskytnutie výstupu PWM a na čítanie analógových napätí prichádzajúcich z článku a rezistora tiež v tejto časti.
#include
Teraz prichádzame k nastavovacej časti. Ak chcete mať Arduino neustále pripojené k počítaču a sledovať priebeh pomocou Serial Monitor a tu inicializovať LCD obrazovku. Na obrazovke tiež na 3 sekundy zobrazí uvítaciu správu „Okruh testeru kapacity batérie“.
void setup () {Serial.begin (9600); lcd.začiatok (16, 2); lcd.setCursor (0, 0); // Nastavte kurzor na prvý stĺpec a prvý riadok. lcd.print ("kapacita batérie"); lcd.setCursor (0,1); lcd.print ("testovací obvod"); oneskorenie (3 000); lcd.clear (); }
Teraz nemusíme deklarovať pin Arduino PWM ako výstupný, pretože o túto časť sa stará funkcia AnalogWrite, ktorú použijeme v našej hlavnej slučke. Musíte definovať hodnotu PWM, ktorá sa má zapísať na tento pin v kóde. Vyberte hodnotu PWM opatrne podľa vybíjacieho prúdu požadovaného vo vašej aplikácii. Príliš veľa hodnoty PWM spôsobí vysoký prúd s vysokým poklesom napätia v Li-Ion článku a príliš nízka hodnota PWM spôsobí vysoký čas vybitia článku. Vo funkcii hlavnej slučky budeme čítať napätie na pinoch A0 a A1, pretože Arduino má na palube 10-bitový ADC, preto by sme mali dostať digitálne výstupné hodnoty v rozmedzí od 0-1023, ktoré budeme musieť zmenšiť späť na Rozsah 0-5 V vynásobením číslom 5,0 / 1023,0. Uistite sa, že správne meriate napätie medzi pinmi 5V a GND Arduino Nano pomocou kalibrovaného voltmetra alebo multimetra, pretože regulované napätie väčšinou nie je presne 5,0 V a dokonca aj malý rozdiel v tomto referenčnom napätí by mal za následok plazenie chýb. pri nameraných hodnotách napätia zmerajte správne napätie a vymeňte 5,0 v multiplikátore uvedenom vyššie.
Teraz, aby sme vysvetlili logiku kódu, nepretržite merame napätie článku a ak je napätie článku vyššie ako horná hranica, ktorú sme určili v kóde, potom sa na LCD displeji zobrazí chybové hlásenie, ktoré vás informuje, či je článok preťažený alebo nie je niečo v poriadku s pripojením a napájanie na kolík hradla MOSFET je zastavené, aby cez záťažový rezistor nemohol tiecť žiadny prúd. Je nevyhnutné, aby ste najskôr úplne nabili bunku pred pripojením k doske testeru kapacity, aby ste mohli vypočítať jej celkovú kapacitu nabitia.
analogWrite (MOSFET_Pin, PWM_VALUE); // načítanie vstupu na analógovom kolíku 0: int sensorValue_voltage_Cell = analogRead (A0); // Konvertujte analógové čítanie (ktoré sa pohybuje od 0 - 1023) na napätie (0 - 5V): float voltage = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("NAPÄTIE:"); Serial.println (napätie); // Tu sa tlačí napätie na Serial Monitor lcd.setCursor (0, 0); // Nastavte kurzor na prvý stĺpec a prvý riadok. lcd.print ("Napätie:"); // Vytlačte údaj o napätí na obrazovku lcd.print (voltage); oneskorenie (100); int sensorValue_Shunt_Resistor = analogRead (A1); float voltage1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); float current = voltage1 / Resistor; Serial.print ("Aktuálny:"); Serial.println (aktuálny); lcd.setCursor (0, 1);// Nastavte kurzor na prvý stĺpec a druhý riadok (počítanie začína od 0!). lcd.print ("Aktuálne:"); lcd.print (aktuálny);
Teraz, ak je napätie článku v medziach horného a dolného napätia, ktoré sme určili, Nano načíta hodnotu prúdu metódou uvedenou vyššie a vynásobí ju časom uplynutým počas meraní a uloží ju do premennej kapacity, ktorú sme definovali skôr. v jednotkách mAh. Po celú túto dobu sa na pripojenom LCD displeji zobrazujú hodnoty prúdu a napätia v reálnom čase. Ak chcete, môžete ich vidieť aj na sériovom monitore. Proces vybíjania článku bude pokračovať, kým napätie článku nedosiahne dolnú hranicu, ktorú sme určili v programe a potom sa na LCD obrazovke zobrazí celková kapacita článku a tok prúdu cez rezistor sa zastaví zatiahnutím za MOSFET bránu špendlík nízky.
else if (napätie> BAT_LOW && napätie <BAT_HIGH) {// Skontrolujte, či je napätie batérie v rámci bezpečného limitu millisPassed = millis () - previousMillis; mA = prúd * 1 000,0; Kapacita = Kapacita + (mA * (millisPassed / 3600000.0)); // 1 hodina = 3600000ms na jeho prevod na jednotky mAh previousMillis = millis (); oneskorenie (1 000); lcd.clear (); }
Vylepšenie presnosti
Je to vo všetkých ohľadoch dosť dobrý spôsob na čítanie napätia a prúdu, ale nie je to dokonalé. Vzťah medzi skutočným napätím a nameraným napätím ADC nie je lineárny a bude to znamenať určitú chybu v meraniach napätí a prúdov.
Ak chcete zvýšiť presnosť výsledku, musíte nakresliť hodnoty ADC, ktoré získate pri použití rôznych známych zdrojov napätia, do grafu a potom z nich určiť multiplikačnú rovnicu pomocou ľubovoľnej metódy, ktorá sa vám páči. Týmto spôsobom sa zlepší presnosť a dostanete sa veľmi blízko k skutočným výsledkom.
MOSFET, ktorý sme použili, tiež nie je MOSFET na logickej úrovni, takže na úplné zapnutie súčasného kanála potrebuje viac ako 7 V, a ak na neho použijeme priamo 5 V, súčasné hodnoty by boli nepresné. Ale môžete použiť logickú úroveň IRL520N N-Channel MOSFET na vylúčenie použitia 12V napájania a priamo pracovať s 5V logickými úrovňami, ktoré máte so svojim Arduino.
Budovanie a testovanie obvodu
Teraz, keď sme navrhli a testovali rôzne časti nášho obvodu na nepájivej doske a potom, čo sme sa ubezpečili, že všetky fungujú podľa očakávania, používame Perfboard na spájkovanie všetkých komponentov dohromady, pretože je to oveľa profesionálnejšia a spoľahlivejšia metóda na testovanie obvodu. Ak chcete, môžete si navrhnúť vlastný PCB na AutoCAD Eagle, EasyEDA alebo Proteus ARES alebo na akomkoľvek inom softvéri, ktorý sa vám páči. Arduino Nano, 16 × 2 alfanumerický LCD a LM741 OPAMP sú namontované na zásuvke Female Bergstik, aby ich bolo možné neskôr znova použiť.
Poskytol som napájanie 12V cez konektor DC Barrel Jack pre prúdový obvod s konštantným zaťažením a potom pomocou LM7805 poskytnem 5V pre obrazovku Nano a LCD. Teraz zapojte obvod a upravte trimer tak, aby ste nastavili úroveň kontrastu LCD obrazovky, na LCD obrazovke by ste už teraz mali vidieť uvítaciu správu a potom, ak je úroveň napätia článku v pracovnom rozsahu, potom aktuálny - zobrazí sa tam napätie a prúd z batérie.
Toto je veľmi základný test na výpočet kapacity bunky, ktorú používate, a je možné ju vylepšiť odobratím údajov a ich uložením do súboru Excel na účely následného spracovania a vizualizácie údajov pomocou grafických metód. V dnešnom svete založenom na dátach je možné túto krivku vybíjania článkov použiť na vytvorenie presných prediktívnych modelov batérie na simuláciu a sledovanie odozvy batérie pri načítaní bez testovania v reálnom svete pomocou softvéru ako NI LabVIEW, MATLAB Simulink atď.. a čaká vás oveľa viac aplikácií. Kompletné fungovanie tohto projektu nájdete vo videu nižšie. Ak máte akékoľvek otázky týkajúce sa tohto projektu, napíšte ich do sekcie komentárov nižšie alebo použite naše fóra. Choďte sa s tým zabaviť a ak chcete, môžeme vás v sekcii komentárov nižšie usmerniť, ako postupovať ďalej. Dovtedy Adios !!!