- Zakaj potrebujemo tester kapacitete baterije?
- Potrebne komponente
- Shema vezja testerja kapacitete akumulatorja Arduino
- Program Arduino za merjenje kapacitete akumulatorja
- Izboljšave natančnosti
- Gradnja in preizkušanje vezja
S prihodom tehnologije postajajo naši elektronski pripomočki in naprave vedno manjši in bolj funkcionalni in zapleteni. S tem povečanjem kompleksnosti se je povečala tudi potreba po moči vezja in v prizadevanju, da bi bila naprava čim manjša in čim bolj prenosna, potrebujemo baterijo, ki lahko dolgo časa zagotavlja visok tok in hkrati čas, tehtajte veliko manj, da bo naprava ostala prenosna. Če želite izvedeti več o baterijah, si lahko preberete tudi ta članek o osnovnih izrazih baterij.
Svinčene kisline, Ni-Cd baterije in Ni-MH baterije od številnih različnih razpoložljivih baterij niso primerne, saj tehtajo več ali ne morejo zagotoviti toka, ki je potreben za našo uporabo, zato imamo litij-ionske baterije. ki lahko zagotavlja visok tok, hkrati pa ohranja nizko težo in kompaktne velikosti. Prej smo zgradili tudi polnilnik in ojačevalni modul 18650 za baterijo in sistem za spremljanje baterij, ki temelji na IoT, če jih želite, si jih lahko ogledate.
Zakaj potrebujemo tester kapacitete baterije?
Na trgu je veliko prodajalcev baterij, ki prodajajo poceni različice Li-ion baterij, ki zahtevajo bizarne specifikacije z zelo nizko ceno, kar je preveč dobro, da bi bilo res. Ko kupite te celice, ali sploh ne delujejo, ali če so, je zmogljivost polnjenja ali trenutni pretok tako majhen, da z aplikacijo sploh ne morejo delati. Torej, kako preizkusiti litijevo baterijo, če celica ni eden od teh poceni drobižev? Ena od metod je merjenje napetosti odprtega kroga brez obremenitve in obremenitve, vendar to sploh ni zanesljivo.
Torej bomo izdelali preizkuševalnik kapacitete baterije 18650 za Li-Ion 18650 Cell, ki bo skozi upor izpraznil popolnoma napolnjeno celico 18650, medtem ko bo meril tok, ki teče skozi upor, za izračun njegove zmogljivosti. Če zahtevane kapacitete baterije ne dobite, medtem ko je napetost celice v določenih mejah, je ta celica v okvari in je ne smete uporabljati, saj se bo stanje napolnjenosti celice pod obremenitvijo zelo hitro izpraznilo in ustvarilo lokalna tokovna zanka, če se uporablja v bateriji, kar povzroči ogrevanje in morda požar. Skočimo torej naravnost vanj.
Potrebne komponente
- Arduino Nano
- LCD z 16 × 2 znaki
- LM741 OPAMP IC
- 2,2Ω, 5W upor
- 7805 IC pozitivnega regulatorja napetosti
- Napajanje 12V
- 10kΩ trimmer potenciometer
- Kondenzator 0,47uF
- 33kΩ upor
- Priključek za vtičnico enosmernega toka
- Vijačne sponke PCB
- IRF540N N-kanalni Mosfet IC
- Perfboard
- Komplet za spajkanje
- Hladilniki
Shema vezja testerja kapacitete akumulatorja Arduino
Popoln diagram vezja za preizkuševalnik kapacitete akumulatorja 18650 je prikazan spodaj. Razlaga vezja je naslednja -
Računska in prikazna enota:
To vezje je nadalje razdeljeno na dva dela, prvi je nizka napetost 5 V za Arduino Nano in 16 × 2 alfanumerični LCD zaslon ter njihove povezave za prikaz rezultatov trenutnih in napetostnih meritev v realnem času. Vezje napaja 12V napajalnik s pomočjo SMPS ali pa lahko uporabite 12V baterijo, pa tudi maksimalni tok bo približno 60-70mA za napajanje Arduina in LCD zaslona.
Za znižanje napetosti na 5V bomo uporabili linearni regulator napetosti, ki lahko traja do 35V in potrebuje vsaj 7,5V vhodnega napajanja, da se zagotovi regulirano napajanje 5V, odvečna napetost pa se odvaja kot toplota, če vaš vhod napetost LM7805 Napetostni regulator IC je več kot 12V, nato razmislite o dodajanju hladilnega telesa, da se ne poškoduje. LCD se napaja s 5V napajalnikom iz 7805 in je povezan z Arduino ter deluje v 4-bitnem načinu. Dodali smo tudi 10k Ω potenciometer brisalcev za nadzor kontrasta LCD zaslona.
Tokokrog konstantne obremenitve:
Drugi je vezje konstantne tokovne obremenitve, ki temelji na PWM, da postane tok obremenitve, ki teče skozi upor, ki ga nadzorujemo mi, in konstanten, tako da ni prišlo do napake zaradi trenutnih sprememb s časom, ko napetost celice pade. Sestavljen je iz LM741 OPAMP IC in IRF540N N-Channel MOSFET, ki nadzoruje tok, ki teče skozi MOSFET, tako da vklopi in izklopi MOSFET glede na stopnjo napetosti, ki smo jo nastavili.
Op-amp deluje v primerjalnem načinu,torej v tem načinu. izhod op-ojačevalnika bo visok, kadar je napetost neinvertirajočega zatiča op-ojačevalnika višja od invertirnega zatiča. Podobno, če je napetost na obrnjenem zatiču operacijskega ojačevalnika višja od neobratnega zatiča, se izhod opcijskega ojačevalnika potegne navzdol. V danem vezju nivo napetosti neinvertirajočega zatiča nadzira D9 PWM zatič Arduino NANO, ki preklopi s frekvenco 500Hz, ki se nato prenaša skozi nizkoprepustni RC filter vezja z vrednostjo upora 33kΩ in kondenzator z kapacitivnostjo 0,47 uF, da zagotavlja skoraj konstanten enosmerni signal na neinvertirajočem zatiču. Obratni zatič je povezan z obremenitvenim uporom, ki odčitava napetost na uporu in skupni GND. Izhodni zatič OPAMP je povezan z vhodno sponko MOSFET-a, da ga vklopite ali izklopite.OPAMP bo poskušal izravnati napetosti na obeh terminalih s preklopom priključenega MOSFET-a, tako da bo tok, ki teče skozi upor, sorazmeren z vrednostjo PWM, ki ste jo nastavili na zatiču D9 NANO. V tem projektu je moj največji tok omejen na 1,3A, kar je smiselno, ker je celica, ki jo imam, 10A kot največja trenutna ocena
Merjenje napetosti:
Največja napetost tipične popolnoma napolnjene Li-Ion celice je 4,1 V do 4,3 V, kar je manj kot meja napetosti 5 V analognih vhodnih zatičev Arduino Nano, ki ima v sebi več kot 10 kΩ notranjega upora, tako da lahko neposredno priključimo Celico do katerega koli analognega vhodnega zatiča, ne da bi vas skrbelo, kako tok teče skozi njih. Torej, v tem projektu moramo izmeriti napetost celice, tako da lahko ugotovimo, ali je celica v pravilnem območju napetosti in ali je popolnoma izpraznjena.
Izmeriti moramo tudi tok, ki teče skozi upor, saj ne moremo uporabiti tokovnega ranžirnega toka, saj se bo kompleksnost vezja povečala, povečan upor v tovorni poti pa bo zmanjšal stopnjo praznjenja celice. Za uporabo manjših ranžirnih uporov bo potrebno dodatno ojačevalno vezje, da bo odčitavanje napetosti, ki prihaja iz njega, berljivo Arduinu.
Torej neposredno beremo napetost na obremenitvenem uporu in nato z uporabo Ohmovega zakona delimo napetost, dobljeno z vrednostjo obremenitvenega upora, da dobimo tok, ki teče skozi to. Negativni priključek upora je priključen neposredno na GND, zato lahko varno domnevamo, da je napetost, ki jo beremo na uporu, padec napetosti na uporu.
Program Arduino za merjenje kapacitete akumulatorja
Zdaj po dokončanju strojnega vezja preidemo na programiranje Arduino. Zdaj, če v vašem računalniku ni nameščen Arduino IDE, kaj počnete tukaj! Pojdite na uradno spletno mesto Arduino in prenesite in namestite Arduino IDE, lahko pa tudi kodirate v katerem koli drugem urejevalniku, vendar je to tema za drug dan, zaenkrat se držimo Arduino IDE. Zdaj uporabljamo Arduino Nano, zato se prepričajte, da ste izbrali ploščo Arduino Nano, tako da odprete TOOLS> BOARDS in tam izberete ARDUINO NANO, zdaj izberite ustrezen procesor, ki ga imate nano, tako da odprete TOOLS> PROCESSORin medtem ko ste tam, izberite tudi vrata, s katerimi je v računalniku povezan vaš Arduino. Arduino uporabljamo za pogon 16 × 2 alfanumeričnega LCD-ja, ki je povezan z njim, in za merjenje napetosti celice in toka, ki teče skozi obremenitveni upor, kot je razloženo v prejšnjem poglavju, svojo kodo začnemo z razglasitvijo datotek glave za pogon 16 × 2 Alfanumerični LCD zaslon. Ta razdelek lahko preskočite, da dobite popolnoma kuhano in postreženo kodo na koncu strani, vendar nas strpite, medtem ko delimo kodo na majhne odseke in poskušamo razložiti.
Zdaj, ko je definirana datoteka glave, nadaljujemo z razglasitvijo spremenljivk, v kodi bomo uporabili za izračun napetosti in toka. Prav tako moramo določiti zatiče, ki jih uporabljamo za pogon LCD-ja, in zatiče, ki jih bomo uporabili za oddajanje PWM izhoda in odčitavanje analognih napetosti, ki prihajajo iz celice in upora, tudi v tem poglavju.
#include
Zdaj prihajamo do namestitvenega dela, če želite, da je vaš Arduino ves čas povezan z računalnikom in spremljate napredek s pomočjo serijskega monitorja in tukaj inicializirate LCD zaslon. Na zaslonu bo za 3 sekunde prikazano tudi pozdravno sporočilo »Circuit Tester Capacity Tester«.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Nastavite kazalko na prvi stolpec in prvo vrstico. lcd.print ("Kapaciteta baterije"); lcd.setCursor (0,1); lcd.print ("Tester Circuit"); zamuda (3000); lcd.clear (); }
Zdaj nam ni treba razglasiti pin-a Arduino PWM kot izhod, saj za ta del skrbi funkcija AnalogWrite, ki jo bomo uporabljali v naši glavni zanki. Določiti morate vrednost PWM, ki bo zapisana na tem zatiču v kodi. Vrednost PWM natančno izberite glede na izpustni tok, ki ga zahteva vaša aplikacija. Prevelika vrednost PWM povzroči močan tok z visokim padcem napetosti v Li-Ion celici, prenizka vrednost PWM pa visok čas praznjenja celice. V funkciji glavne zanke bomo odčitavali napetosti na nožicah A0 in A1, saj ima Arduino na vozilu 10-bitni ADC, zato bi morali dobiti digitalne izhodne vrednosti od 0-1023, ki jih bomo morali prilagoditi nazaj na Območje 0-5V tako, da ga pomnožimo s 5,0 / 1023,0. Prepričajte se, da ste pravilno izmerili napetost med 5V in GND zatiči Arduino Nano s kalibriranim voltmetrom ali multimetrom, saj največkrat regulirana napetost ni ravno 5,0V in bi že majhna razlika v tej referenčni napetosti povzročila napake v odčitkih napetosti izmerite pravilno napetost in v zgornjem multiplikatorju zamenjajte 5,0.
Da bi razložili logiko kode, neprekinjeno merimo napetost celice in če napetost celice presega zgornjo mejo, ki smo jo določili v kodi, se na LCD-ju prikaže sporočilo o napaki, ki vas obvesti, ali je celica prekomerno napolnjen ali je s povezavo kaj narobe in napajanje zatiča vrat MOSFET se ustavi, tako da tok skozi upor obremenitve ne more teči. Ključnega pomena je, da najprej popolnoma napolnite celico, preden jo priključite na ploščo preizkuševalnika zmogljivosti, da boste lahko izračunali njeno skupno zmogljivost polnjenja.
analogWrite (MOSFET_Pin, PWM_VALUE); // preberemo vhod na analognem zatiču 0: int sensorValue_voltage_Cell = analogRead (A0); // Pretvorimo analogni odčitek (ki se giblje od 0 - 1023) v napetost (0 - 5V): plavajoča napetost = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("NAPETOST:"); Serial.println (napetost); // Tu se napetost tiska na serijski monitor lcd.setCursor (0, 0); // Nastavite kazalko na prvi stolpec in prvo vrstico. lcd.print ("Napetost:"); // natisni odčitke napetosti na zaslon lcd.print (napetost); zamuda (100); int sensorValue_Shunt_Resistor = analogRead (A1); plavajoča napetost1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); plavajoči tok = napetost1 / upor; Serial.print ("Current:"); Serial.println (trenutno); lcd.setCursor (0, 1);// Nastavite kazalko na prvi stolpec in drugo vrstico (štetje se začne pri 0!). lcd.print ("Trenutni:"); lcd.print (trenutno);
Če je napetost celice znotraj zgornje in spodnje napetostne meje, ki smo jo določili, bo Nano odčitala trenutno vrednost po zgoraj navedeni metodi in jo pomnožila s časom, ki je potekel med meritvami, in jo shranila v spremenljivko kapacitete, ki smo jo določili prej v enotah mAh. V tem celotnem času se na pritrjenem LCD zaslonu prikažejo trenutne vrednosti napetosti in napetosti, ki jih lahko vidite tudi na serijskem monitorju. Postopek praznjenja celice se bo nadaljeval, dokler napetost celice ne doseže spodnje meje, ki smo jo določili v programu, nato pa se celotna zmogljivost celice prikaže na LCD zaslonu in tok toka skozi upor ustavi s potegom vrat MOSFET pin nizko.
sicer če (napetost> BAT_LOW && napetost <BAT_HIGH) {// Preverite, ali je napetost akumulatorja znotraj varne meje millisPassed = millis () - previousMillis; mA = tok * 1000,0; Kapaciteta = Kapaciteta + (mA * (milisPassed / 3600000.0)); // 1 ura = 3600000ms za pretvorbo v mAh enote previousMillis = milis (); zamuda (1000); lcd.clear (); }
Izboljšave natančnosti
Vsekakor je dovolj dober način za odčitavanje napetosti in toka, vendar ni popoln. Razmerje med dejansko napetostjo in izmerjeno napetostjo ADC ni linearno, kar bo pomenilo določeno napako pri meritvah napetosti in tokov.
Če želite povečati natančnost rezultata, morate vrednosti ADC, ki jih dobite pri uporabi različnih znanih napetostnih virov, narisati na graf in nato iz njega določiti multiplikacijsko enačbo s poljubno metodo. Tako se bo natančnost izboljšala in zelo se boste približali dejanskim rezultatom.
Poleg tega MOSFET, ki smo ga uporabili, ni MOSFET na logični ravni, zato potrebuje več kot 7 V, da v celoti vklopi trenutni kanal, in če nanj uporabimo 5 V, bi trenutni odčitki bili netočni. Lahko pa uporabite logični nivo IRL520N N-Channel MOSFET, da izključite uporabo 12V napajanja in neposredno delate s 5V logičnimi nivoji, ki jih imate z vašim Arduinom.
Gradnja in preizkušanje vezja
Zdaj, ko smo oblikovali in preizkusili različne odseke našega vezja na plošči, in potem, ko smo se prepričali, da vsi delujejo, kot je predvideno, uporabljamo Perfboard za spajkanje vseh komponent skupaj, saj je to veliko bolj profesionalna in zanesljiva metoda za preizkušanje vezja. Če želite, lahko na PC-jih AutoCAD Eagle, EasyEDA ali Proteus ARES ali kateri koli drugi programski opremi oblikujete svojo tiskano vezje. Arduino Nano, 16 × 2 alfanumerični LCD in LM741 OPAMP so nameščeni na ženski Bergstik, tako da jih je mogoče kasneje ponovno uporabiti.
Napajal sem 12 V prek priključka DC Barrel Jack za tokokrog s konstantno obremenitvijo, nato pa s pomočjo LM7805 dobim 5 V za Nano in LCD zaslon. Zdaj vklopite vezje in prilagodite lonec trimmerja, da nastavite stopnjo kontrasta LCD zaslona, na LCD zaslonu bi že morali videti pozdravno sporočilo, nato pa, če je nivo napetosti celice v delovnem območju, potem trenutni -Tu bo prikazana napetost in tok iz akumulatorja.
To je zelo osnovni test za izračun zmogljivosti celice, ki jo uporabljate, in jo je mogoče izboljšati z zajemom podatkov in shranjevanjem v Excelovi datoteki za naknadno obdelavo in vizualizacijo podatkov z grafičnimi metodami. V današnjem svetu, ki temelji na podatkih, lahko to krivuljo izpraznitve celic uporabimo za izdelavo natančnih napovednih modelov akumulatorja za simulacijo in prikaz odziva akumulatorja v stanju obremenitve brez preskusov v realnem svetu s pomočjo programske opreme, kot so NI LabVIEW, MATLAB Simulink itd. in še veliko več aplikacij vas čaka. Celotno delovanje tega projekta najdete v spodnjem videu. Če imate kakršna koli vprašanja o tem projektu, jih napišite v spodnji odsek za komentarje ali uporabite naše forume. Pojdite in se zabavajte z njim. Če želite, vas lahko v spodnjem oddelku za komentarje vodimo, kako nadaljevati od tu. Do takrat Adios !!!