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, Srpanj
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 uputa za izradu testera, ali čini se da nijedno od njih ne odgovara mojim potrebama. Htio sam biti u mogućnosti testirati i više od samo pojedinačnih stanica NiCd/NiMH ili Lion. Htio sam moći testirati bateriju električnog alata, a da je prije toga nisam odvojio. Odlučio sam pobliže pogledati stvar i dizajnirati je za sebe. Jedna stvar vodi do druge i konačno sam odlučio napisati instrukciju. Odlučio sam i ne ulaziti u sve detalje o tome kako zapravo izraditi tester jer svatko može odlučiti o određenim izborima, poput veličine otpornika koju treba koristiti ili je li potrebno PCB 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 kôd te kako kalibrirati tester.

Korak 1: Povijest - Verzija 1

Povijest - verzija 1
Povijest - verzija 1

Gore je prikazana prva verzija s dolje navedenom podrškom od 10 V ulaza (R12 & R17 & Q11 & Q12).

Prvu verziju je više -manje preuzeo iz instruktora 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 ispitivanja 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 zapravo može biti do 11,2 V što se ne može testirati zbog ograničenja od 10 V. Trebalo je nešto učiniti. Prvo, samo sam dodao nekoliko MOSFET -ova i otpornika kako bi razdjelnici napona mogli dopustiti više od 10V. No 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 s otporom od 10 ohma značilo struju od 1,68 A 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 odgovarajuće rješenje te 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 radije bih imao rješenje bez pulsirajuće struje ili da bih imao potrebu odvoditi toplinu s mosfetom. 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 reći da je gubitak napona na MOSFET -u zanemariv jer je otpor MOSFET -a tako nizak, ali sam izbor MOSFET -a prepustio čitatelju, pa otpor može ići čak i preko 1 ohma gdje počinje materija. U prvoj verziji odabirom ispravnog MOSFET -a uklonila bi se potreba za mjerenje donje točke, ali u verziji 2 odlučio sam izmjeriti napon samo na jednom otporniku, što onda čini važnim zapravo imati dvije mjerne točke. A razlog izbora bila je jednostavnost ožičenja Veroboarda. To dodaje pogrešku u točnosti jer je izmjereni napon na jednom otporniku znatno manji od mjerenja na svim otpornicima. Prilikom odabira komponenti odlučio sam upotrijebiti 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 zaslon
  • 10 x 5W 3.3 Ohm otpornici
  • 3 x 2n7000 MOSFET -ovi
  • 10 x IRFZ34N mosfets
  • 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 vodovima, za koje sam primijetio da su učinili zaslon stabilnijim
  • električni vodovi
  • 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 stupnjeva Celzijusa (što je više od 212 stupnjeva Fahrenheita) i ako se cijeli sustav ž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 slučajno imao u blizini neki stari ventilator za CPU.

Shematska funkcionalnost

To je vrlo jednostavno i samo po sebi razumljivo. Baterija koja se testira povezana je s nizom otpornika i masom. Mjerači 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 mosfetova, koje pokreće izravno Arduino. I na kraju, zaslon je spojen na Arduino I2C pinove. O shematskom J nema mnogo za reći

Korak 4: Kôd

Kod
Kod

Gore se može vidjeti gruba funkcionalnost koda. Pogledajmo tada kôd bliže (arduino ino datoteke su priložene). Postoji niz funkcija, a zatim glavna petlja.

Glavna petlja

Kad 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 tom 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 manje je ili više informacija koje bi se mogle bolje iskoristiti, ali se u ovoj verziji izvješćuje 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 zaslon je ispunjen poznatim vrijednostima.

Postupak prikazivanja rezultata

Funkcija showResults jednostavno postavlja retke koji će se prikazivati na zaslonu, a također i niz koji se šalje serijskom sučelju.

Postupak mjerenja napona

Na početku funkcije mjeri se Vcc Arduina. Potrebno je znati izračunati napone izmjerene pomoću analognih ulaza. Zatim se napon baterije mjeri pomoću raspona od 20 V kako bi se moglo odlučiti koje područje će se koristiti. Zatim se izračunava i napon baterije i napon otpornika. Mjerenje napona baterije koristi prednost klase DividerInput 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 korištenje pri 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 konstantne, a također se mogu definirati unutar postupka budući da se ne koriste globalno. Ali hej, uvijek se ima što poboljšati:)

Postupak za izračunavanje kapaciteta baterije

Funkcija pražnjenja brine se o stvarnom prebrojavanju kapaciteta baterije. Kao parametre dobiva niske i visoke granice napona za bateriju koja se testira. 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čun 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 uspoređuje se 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 uporabu

U funkciji selectNumOfResistors vrši se jednostavna usporedba napona s 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 napona odabrani su tako da maksimalna struja u bilo kojem trenutku tijekom 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 tijeku pražnjenje.

Korak 5: Kalibriranje mjerača

Kalibriranje mjerača
Kalibriranje mjerača

Za kalibriranje mjerača stvorio sam drugu aplikaciju (u privitku). Koristi isti hardver. U početku su 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. Primijetio sam da rezultat nije toč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 je uključeno, okrenite prekidač za odabir vrste baterije.
  3. Podesite vrijednost u readuVCC () kako biste dobili točan rezultat. Uzmite vrijednost koju funkcija daje (u milivoltima) i podijelite s njom dugu vrijednost. 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 pomoću podesivog izvora napajanja koji se koristi za napajanje ulaza mjerača. Najjednostavnije je koristiti napone od 1 V do 20 V s koracima od 1 V i bilježiti rezultate u proračunsku tablicu. U proračunskoj tablici uzima se 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 proračunsku tablicu kako mi je izgledala. Prosjeci se izračunavaju samo iz vrijednosti koje se trebaju nalaziti u rasponu, a te se vrijednosti zatim postavljaju u stvarnoj aplikaciji za mjerenje.

Kao ovo

const int divCorrectionB10V = 998; // razdjelnik za ispravak 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; // razdjelnik korekcije razdjelnika u rasponu 20V

Prilagođavanje vrijednosti otpornika može se izvršiti davanjem na ulazu nekog napona (tj. 2V), prebacivanjem prekidača tipa šišmiša (radi povećanja opterećenja) i mjerenjem ulazne struje i napona na prvom otporniku i dijeljenjem napona sa strujom. Za mene je 2V dalo 607mA što daje 2/0.607 = 3.2948 ohma što sam zaokružio na 3.295 ohma. Dakle, kalibracija je gotova.

Korak 6: Zadnja NAPOMENA

Ovdje jedna važna napomena. Imperativ je da svi spojevi budu u dobrom 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 gotovo odmah završio s 1,2 V NiCd ćelijama jer je donja granica od 0,95 V brzo postignuta.

Preporučeni: