Sadržaj:
- Korak 1: Historija - verzija 1
- Korak 2: Verzija 2
- Korak 3: Ovako je ispalo
- Korak 4: Kôd
- Korak 5: Kalibracija mjerača
- Korak 6: Zadnja NAPOMENA
Video: Još jedan ispitivač kapaciteta baterije: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Zašto još jedan ispitivač kapaciteta
Pročitao sam mnogo različitih uputstava za izradu testera, ali čini se da nijedno od njih ne odgovara mojim potrebama. Želeo sam da budem u mogućnosti da testiram i više nego samo pojedinačne ćelije NiCd/NiMH ili Lion. Htio sam biti u mogućnosti testirati bateriju električnog alata, a da je prethodno nisam odvojio. Pa sam odlučio da pobliže pogledam stvar i osmislim nešto svoje. Jedna stvar vodi do druge i konačno sam odlučio da i ja napišem uputstvo. Odlučio sam i da ne ulazim u sve detalje o tome kako zapravo napraviti tester jer svatko može odlučiti o određenim izborima, poput veličine otpornika koju treba koristiti ili je li potrebna PCB ploča ili je Veroboard dovoljan, a postoji i mnoštvo instrukcija kako to učiniti instalirati eagle ili kako napraviti PCB. Drugim riječima, koncentrirat ću se na sheme i kod te kako kalibrirati tester.
Korak 1: Historija - verzija 1
Gore je prva verzija sa dolje navedenom podrškom za preko 10V ulaza (R12 & R17 & Q11 & Q12).
Prvu verziju je manje -više preuzeo instruktor od strane deba168 (nažalost, ne mogu pronaći njegovu instrukciju da pruži vezu). Napravljene su samo neke manje promjene. U ovoj verziji sam imao jedan otpornik opterećenja od 10 ohma kojim je upravljao MOSFET. To je ipak donijelo neke probleme. Prilikom testiranja jedne NiCd ili NiMH ćelije potrebno vrijeme lako se mjerilo u satima ako ne i danima. Baterija od 1500mAh trajala je više od 12 sati (struja je bila samo 120mA). S druge strane, prva verzija mogla je testirati samo baterije ispod 10V. Potpuno napunjena baterija od 9,6 V može biti do 11,2 V, što se ne može testirati zbog ograničenja od 10 V. Nešto je trebalo učiniti. Prvo sam samo dodao nekoliko MOSFET -ova i otpornika kako bi razdjelnici napona mogli dopustiti više od 10V. Ali ovo je s druge strane donijelo još jedan problem. Potpuno napunjena baterija od 14,4 V može imati tp 16,8 V, što je sa 10 ohmskim otpornikom značilo struju od 1,68A i, naravno, rasipanje snage od otpornika opterećenja od gotovo 30 W. Dakle, s niskim naponom predugo vrijeme ispitivanja i s visokim naponom previsoka struja. Jasno je da to nije bilo adekvatno rješenje i da je bio potreban daljnji razvoj.
Korak 2: Verzija 2
Htio sam rješenje u kojem će struja ostati u određenim granicama bez obzira na napon baterije. Jedno rješenje bi bilo korištenje PWM -a i samo jednog otpornika, ali preferirao sam rješenje bez pulsirajuće struje ili potrebu za rasipanjem MOSFET topline. Tako sam stvorio rješenje s 10 naponskih utora, svaki širine 2V, koristeći 10 otpornika od 3,3 ohma i MOSFET za svaki otpornik.
Korak 3: Ovako je ispalo
Komentari na krugMoglo bi se tvrditi da je gubitak napona na MOSFET -u zanemariv jer je otpor MOSFET -a tako nizak, ali sam izbor MOSFET -a prepustio čitatelju i stoga otpor može ići čak i preko 1 ohma gdje počinje stvar. U prvoj verziji odabirom ispravnog MOSFET -a uklonila bi se potreba za mjerenjem niže tačke, ali u verziji 2 odlučio sam izmjeriti napon samo na jednom otporniku, pa je onda važno imati dvije mjerne točke. A razlog izbora bila je jednostavnost ožičenja Veroboarda. Ovo dodaje grešku u preciznosti jer je izmjereni napon na jednom otporniku znatno manji od mjerenja na svim otpornicima. Prilikom odabira komponenti odlučio sam koristiti ono što sam već imao pri ruci ili ono što sam lako mogao nabaviti. To je dovelo do sljedeće BOM:
- Arduino Pro Mini 5V! VAŽNO! Koristio sam 5V verziju i sve se temelji na njoj
- 128x64 I2C OLED ekran
- 10 x 5W 3.3 Ohm otpornici
- 3 x 2n7000 MOSFET -ovi
- 10 x IRFZ34N MOSFET -ovi
- 6 x 10 kOhm otpornici
- 2 x 5 kOhm otpornika
- 16V 680uF kondenzator
- 1 stari CPU ventilator
Nisam dodao sljedeće u sheme
- pullup otpornici na I2C linijama, za koje sam primijetio da su učinili zaslon stabilnijim
- dalekovodi
- kondenzator u liniji 5V koji je također stabilizirao zaslon
Tijekom testiranja primijetio sam da će se otpornici opterećenja jako zagrijati, posebno ako su svi u upotrebi. Temperatura se podigla na preko 100 stepeni Celzijusa (što je više od 212 stepeni Fahrenheita) i ako se cijeli sistem želi zatvoriti u kutiju, trebalo bi osigurati neku vrstu hlađenja. Otpornici koje sam koristio su 3.3 ohma / 5W, a maksimalna struja bi se trebala pojaviti s oko 2V po otporniku dajući 2V / 3.3 = 0.61A što rezultira s 1.21W. Na kraju sam dodao jednostavan ventilator u kutiju. Uglavnom zato što sam u blizini imao neki stari CPU ventilator.
Shematska funkcionalnost
To je prilično jednostavno i samo po sebi razumljivo. Baterija koja se testira povezana je s nizom otpornika i masom. Mjere napona su priključak baterije i prvi otpornik. Razdjelnici napona tada se koriste za spuštanje napona na razinu koja bolje odgovara Arduinu. Jedan digitalni izlaz koristi se za odabir 10V ili 20V raspona razdjelnika. Svaki otpornik u opterećenju može se pojedinačno uzemljiti pomoću MOSF -ova, koje pokreće direktno Arduino. I na kraju, zaslon je povezan s Arduino I2C pinovima. Nema mnogo toga za reći o shemi J
Korak 4: Kôd
Gore se može vidjeti gruba funkcionalnost koda. Pogledajmo onda kôd bliže (arduino ino datoteke su priložene). Postoji niz funkcija, a zatim glavna petlja.
Glavna petlja
Kada je mjerenje spremno, rezultati se prikazuju i tu se izvršavanje završava. Ako mjerenje još nije obavljeno, prvo se provjerava koja je vrsta baterije odabrana, a zatim napon na ulazu. Ako napon prelazi 0,1 V, mora biti spojena barem neka vrsta baterije. U ovom slučaju poziva se potprogram kako bi se pokušalo otkriti koliko ćelija ima u bateriji kako bi se odlučilo kako će se testirati. Broj ćelija je manje -više informacija koja bi se mogla bolje iskoristiti, ali se u ovoj verziji izvještava samo putem serijskog sučelja. Ako je sve u redu, proces pražnjenja započinje i na svakom krugu glavne petlje izračunava se kapacitet baterije. Na kraju glavne petlje ekran je popunjen poznatim vrijednostima.
Postupak prikazivanja rezultata
Funkcija showResults jednostavno postavlja redove koji će se prikazivati na ekranu, a također i niz koji se šalje serijskom sučelju.
Postupak mjerenja napona
Na početku funkcije mjeri se Vcc Arduina. Potrebno je da biste mogli izračunati napone izmjerene pomoću analognih ulaza. Zatim se napon baterije mjeri pomoću raspona od 20 V kako biste mogli odlučiti koji raspon ćete koristiti. Zatim se izračunava i napon baterije i napon otpornika. Mjerenje napona baterije koristi prednost DividerInput klase koja ima metode čitanja i napona za neobrađeno očitanje ili izračunati napon dotičnog analognog ulaza.
Postupak odabira korištenih vrijednosti
U funkciji selectUsedValues pogađa se broj ćelija, a gornja i donja granica za bateriju postavljaju se za upotrebu u postupku pražnjenja. Mjerenje je također označeno kao započeto. Granice za ovaj postupak postavljene su na početku kao globalne varijable. Iako mogu biti konstantni, a mogu se definirati i unutar procedure budući da se ne koriste globalno. Ali hej, uvijek ima nešto za poboljšati:)
Postupak za izračunavanje kapaciteta baterije
Funkcija pražnjenja vodi računa o stvarnom prebrojavanju kapaciteta baterije. Dobija niske i visoke granice napona za bateriju koja se testira kao parametre. Visoka vrijednost se ne koristi u ovoj verziji, ali niska se koristi za odlučivanje kada će se prekinuti testiranje. Na početku funkcije broj otpornika koji se koriste saznat će se pomoću funkcije stvorene za tu svrhu. Funkcija vraća broj otpornika i istovremeno pokreće pražnjenje i resetira brojač. Zatim se izmjere naponi i koriste zajedno s poznatom vrijednošću otpornika za izračunavanje struje. Sada kada znamo napon i struju te koliko je vremena prošlo od zadnjeg mjerenja, možemo izračunati kapacitet. Na kraju procesa pražnjenja napon baterije se uspoređuje s donjom granicom, a ako je prešao granicu, faza pražnjenja se zaustavlja, MOSF se zatvaraju, a mjerenje se označava kao spremno.
Postupak za pronalaženje broja otpornika za upotrebu
U funkciji selectNumOfResistors vrši se jednostavno poređenje napona sa unaprijed postavljenim vrijednostima, a nakon toga se odlučuje o broju otpornika koji će se koristiti. Otvoren je odgovarajući MOSFET kako bi preskočili neke od otpornika. Utori za napon su odabrani tako da maksimalna struja u bilo kojem trenutku tokom pražnjenja ostane nešto iznad 600mA (2V/3.3Ohm = 606mA). Funkcija vraća broj upotrijebljenih otpornika. Budući da se ventilator pokreće s iste linije kao i prvi MOSFET, on se mora uvijek otvarati kada je u toku pražnjenje.
Korak 5: Kalibracija mjerača
Da bih kalibrirao mjerač, stvorio sam drugu aplikaciju (u prilogu). Koristi isti hardver. U početku su sve vrijednosti razdjelnika ispravki postavljene na 1000.
const int divCorrectionB10V = 1000; // množitelj korekcije razdjelnika u rasponu 10V const int divCorrectionR10V = 1000; // množitelj korekcije razdjelnika u rasponu 10V const int divCorrectionB20V = 1000; // množitelj korekcije razdjelnika u rasponu 20V const int divCorrectionR20V = 1000; // množitelj korekcije razdjelnika u rasponu 20V
u funkciji readVcc () rezultirajući Vcc napon ovisi o postavljanju vrijednosti u zadnjem retku funkcije prije povratka. Obično na internetu možete pronaći vrijednost 1126400L koja se koristi za izračun. Primetio sam da rezultat nije tačan.
Proces kalibracije:
- Učitajte aplikaciju za mjerenje na Arduino.
- Možete vidjeti u Arduinu (i u serijskom izlazu i ako se ventilator okreće) je li opterećenje uključeno. Ako jeste, okrenite prekidač za izbor vrste baterije.
- Podesite vrijednost u readuVCC () da biste dobili točan rezultat. Uzmite vrijednost koju funkcija daje (u milivoltima) i podijelite dugu vrijednost s njom. Dobit ćete neobrađenu vrijednost interne reference. Sada multimetrom izmjerite stvarni napon napajanja u milivoltima i pomnožite ga s prethodno izračunatom vrijednošću i dobit ćete novu ispravljenu dugu vrijednost. U mom slučaju funkcija je vratila 5288mV kada je stvarni Vcc bio 5.14V. Izračunavajući 1126400/5288*5140 = 1094874 koje sam isprobao. Stavite novu vrijednost u kôd i ponovo je prenesite na Arduino.
- Podešavanje korekcijskih vrijednosti razdjelnika analognog ulaznog otpornika događa se korištenjem podesivog izvora napajanja koji se koristi za napajanje ulaza brojila. Najjednostavnije je koristiti napone od 1V do 20V sa koracima od 1V i bilježiti rezultate u proračunsku tablicu. U proračunskoj tablici se uzima prosjek. Ispravljene vrijednosti izračunavaju se prema sljedećoj formuli: "raw_value*raspon*Vcc/Vin" gdje raw_value je vrijednost u 10VdivB, 10VdivR, 20VdivB ili 20VdivR ovisno o tome koju korekciju treba izračunati.
Pogledajte tablicu kako mi je izgledala. Prosjeci se izračunavaju samo iz vrijednosti koje trebaju biti u rasponu, a te vrijednosti se zatim postavljaju u stvarnoj aplikaciji za mjerenje.
Volim ovo
const int divCorrectionB10V = 998; // korektor razdjelnika razdjelnika u rasponu 10V const int divCorrectionR10V = 1022; // razdjelnik za ispravljanje razdjelnika u rasponu 10V const int divCorrectionB20V = 1044; // razdjelnik za ispravljanje razdjelnika u rasponu 20V const int divCorrectionR20V = 1045; // korektor razdjelnika u rasponu 20V
Prilagođavanje vrijednosti otpornika može se obaviti tako da se na ulaz (tj. 2V) da napon, prebaci prekidač tipa šišmiša (radi povećanja opterećenja) i izmjeri ulazna struja i napon na prvom otporniku i podijeli napon sa strujom. Za mene je 2V dalo 607mA što daje 2/0.607 = 3.2948 ohma koje sam zaokružio na 3.295 ohma. Dakle, kalibracija je završena.
Korak 6: Zadnja NAPOMENA
Evo jedne važne napomene. Imperativ je da svi spojevi budu u ispravnom stanju od baterije do otpornika. Imao sam jednu lošu vezu i pitao sam se zašto sam dobio 0,3 V manje napona u mreži otpornika nego na bateriji. To je značilo da je proces mjerenja završio gotovo odmah sa NiCd ćelijama od 1,2 V jer je donja granica od 0,95 V brzo postignuta.
Preporučuje se:
Još jedan rotacijski prekidač koji je uglavnom štampan 3D: 7 koraka (sa slikama)
Još jedan rotacijski prekidač koji je uglavnom 3D ispisan: Prije nekog vremena stvorio sam uglavnom 3D printani rotacijski prekidač posebno za moj projekt Minivac 601 Replica. Za moj novi Think-a-Tron 2020 projekt, smatram da mi treba još jedan rotacijski prekidač. Tražim prekidač za montiranje ploče SP5T. Dodatak
Ispitivač kapaciteta baterije pomoću Arduina [Lithium-NiMH-NiCd]: 15 koraka (sa slikama)
Ispitivač kapaciteta baterije pomoću Arduina [Litij-NiMH-NiCd]: Značajke: Identificirajte lažnu litij-ionsku/litij-polimernu/NiCd/NiMH bateriju Podesivo konstantno strujno opterećenje (može ga i korisnik izmijeniti) Može mjeriti kapacitet gotovo bilo koja vrsta baterije (ispod 5V) Lako se lemi, gradi i koristi
Uradi sam Arduino ispitivač kapaciteta baterije - V2.0: 11 koraka (sa slikama)
Uradi sam Arduino ispitivač kapaciteta baterija - V2.0: Danas se lažne litijske i NiMH baterije nalaze posvuda koje se prodaju oglašavanjem s većim kapacitetom od njihovog stvarnog kapaciteta. Stoga je zaista teško razlikovati pravu i lažnu bateriju. Slično, teško je znati
Uradi sam Arduino ispitivač kapaciteta baterije - V1.0: 12 koraka (sa slikama)
Uradi sam Arduino ispitivač kapaciteta baterije - V1.0: [Reproduciraj video] Spasio sam toliko starih lap -top baterija (18650) da bih ih ponovno upotrijebio u svojim solarnim projektima. Vrlo je teško identificirati dobre ćelije u bateriji. Ranije sam u jednom od Power Bank Instructable -a rekao kako da prepoznam
Ispitivač kapaciteta litijum-jonske baterije (litijum-tester snage): 5 koraka
Li-Ion Tester kapaciteta baterije (Lithium Power Tester): =========== UPOZORENJE & ODRICANJE ODGOVORNOSTI ========== Li-Ion baterije su vrlo opasne ako se s njima ne rukuje pravilno. NEMOJTE PREPUNJAVATI / PALITI / OTVARATI Li-Ion paliceSve što radite s ovim podacima na vlastitu ste odgovornost ====== =====================================