Sadržaj:

Još jedan ispitivač kapaciteta baterije: 6 koraka
Još jedan ispitivač kapaciteta baterije: 6 koraka

Video: Još jedan ispitivač kapaciteta baterije: 6 koraka

Video: Još jedan ispitivač kapaciteta baterije: 6 koraka
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Juli
Anonim
Još jedan ispitivač kapaciteta baterije
Još jedan ispitivač kapaciteta baterije
Još jedan ispitivač kapaciteta baterije
Još jedan ispitivač kapaciteta baterije

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

Historija - verzija 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

Ovako je ispalo
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

Kodeks
Kodeks

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

Kalibriranje mjerača
Kalibriranje 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:

  1. Učitajte aplikaciju za mjerenje na Arduino.
  2. 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.
  3. 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.
  4. 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: