Obsah:
- Krok 1: Historie - verze 1
- Krok 2: Verze 2
- Krok 3: Takto to dopadlo
- Krok 4: Kód
- Krok 5: Kalibrace měřiče
- Krok 6: Poslední POZNÁMKA
Video: Další tester kapacity baterie: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Proč ještě jeden tester kapacity
Přečetl jsem spoustu různých pokynů k sestavení testeru, ale žádný z nich nevyhovuje mým potřebám. Chtěl jsem mít možnost vyzkoušet také více než jen samostatné články NiCd/NiMH nebo Lion. Chtěl jsem mít možnost vyzkoušet baterii elektrického nářadí, aniž bych ji nejprve rozebral. Rozhodl jsem se tedy, že se na věc podívám blíže a navrhnu vlastní. Jedna věc vede k druhé a nakonec jsem se rozhodl napsat instruktáž sám. Také jsem se rozhodl, že nepůjdu do všech podrobností o tom, jak skutečně postavit tester, protože každý se může rozhodnout pro určité volby, jako je velikost rezistoru, který má použít, nebo zda je zapotřebí PCB nebo je dostatečně Veroboard a existuje také spousta instrukcí, jak nainstalovat orla nebo jak vyrobit DPS. Jinými slovy, soustředím se na schémata a kód a na to, jak kalibrovat tester.
Krok 1: Historie - verze 1
Nahoře je první verze s níže zmíněnou přidanou podporou vstupu 10V (R12 a R17 a Q11 a Q12).
První verze byla víceméně převzata z instructable od deba168 (bohužel nemohu najít jeho instructable, aby poskytl odkaz). Byly provedeny pouze některé drobné změny. V této verzi jsem měl jeden 10 ohmový zatěžovací odpor ovládaný mosfetem. To však přineslo určité problémy. Při testování jednoho článku NiCd nebo NiMH byl potřebný čas snadno změřen v hodinách, ne -li dnech. Baterie 1 500 mAh trvala více než 12 hodin (proud byl pouze 120 mA). Na druhou stranu první verze mohla testovat pouze baterie pod 10V. A plně nabitá 9,6V baterie může být ve skutečnosti až 11,2V, což nebylo možné testovat kvůli limitu 10V. Bylo třeba něco udělat. Nejprve jsem přidal pár mosfetů a odporů, aby děliče napětí dokázaly umožnit více než 10V. To ale na druhou stranu přineslo další problém. Plně nabitá baterie 14,4 V může mít až 16,8 V, což s odporem 10 ohmů znamenalo proud 1,68 A a samozřejmě ztrátový výkon ze zatěžovacího odporu téměř 30 W. Takže s nízkým napětím příliš dlouhá doba testu a s vysokým napětím příliš vysoký proud. Očividně to nebylo adekvátní řešení a byl zapotřebí další vývoj.
Krok 2: Verze 2
Chtěl jsem řešení, kde proud zůstane v určitých mezích bez ohledu na napětí baterie. Jedním z řešení by bylo použít PWM a jen jeden odpor, ale já jsem preferoval řešení bez pulzujícího proudu nebo potřebu odvádět teplo mosfetu. Vytvořil jsem tedy řešení s 10 napěťovými sloty, každý o šířce 2 V, s použitím 10 3,3 ohmových odporů a mosfetu pro každý odpor.
Krok 3: Takto to dopadlo
Někdo by mohl tvrdit, že ztráta napětí přes mosfet je zanedbatelná, protože odpor mosfetu je tak nízký, ale ponechal jsem výběr mosfetu na čtečce, a proto může odpor jít i přes 1 ohm, kde začíná hmota. Ve verzi jedna výběr správného mosfetu by odstranil potřebu měření v nižších bodech, ale ve verzi 2 jsem se rozhodl měřit napětí pouze na jednom rezistoru, což pak dělá důležité mít skutečně dva měřicí body. A důvodem volby byla jednoduchost zapojení Veroboardu. To přidává určitou chybu přesnosti, protože naměřené napětí na jednom rezistoru je výrazně menší než měření na všech rezistorech. Při výběru komponent jsem se rozhodl použít to, co jsem již měl po ruce, nebo co jsem mohl snadno získat. To vedlo k následujícímu kusovníku:
- Arduino Pro Mini 5V! DŮLEŽITÉ! Použil jsem 5V verzi a vše je na ní založeno
- 128x64 I2C OLED displej
- Rezistory 10 x 5 W 3,3 Ohm
- 3 x 2n7000 mosfety
- 10 x mosfety IRFZ34N
- Rezistory 6 x 10 kOhm
- 2 x 5 kOhm odpory
- 16V 680uF kondenzátor
- 1 starý ventilátor CPU
Do schémat jsem nepřidal následující
- výsuvné odpory na linkách I2C, kterých jsem si všiml, učinily displej stabilnějším
- elektrické vedení
- kondenzátor v 5V řádku, který také stabilizoval displej
Při testování jsem si všiml, že zátěžové odpory se dost zahřejí, zvláště pokud byly všechny používány. Teplota se zvýšila na více než 100 stupňů Celsia (což je více než 212 stupňů Fahrenheita) a pokud má být celý systém uzavřen v krabici, mělo by existovat nějaké chlazení. Rezistory, které jsem použil, jsou 3,3 ohmů / 5 W a maximální proud by měl nastat s asi 2 V na odpor, což dává 2 V / 3,3 = 0,61 A, což má za následek 1,21 W. Nakonec jsem do krabice přidal jednoduchý ventilátor. Většinou proto, že jsem náhodou měl kolem sebe nějaký starý ventilátor CPU.
Schematická funkčnost
Je to docela přímočaré a samo vysvětlující. Testovaná baterie je připojena k sérii odporů a uzemnění. Body měření napětí jsou připojení baterie a první odpor. Rozdělovače napětí se pak používají k poklesu napětí na úroveň, která lépe vyhovuje Arduinu. Jeden digitální výstup slouží k výběru rozsahu děličů 10 V nebo 20 V. Každý odpor v zátěži lze jednotlivě uzemnit pomocí mosfetů, které jsou poháněny přímo Arduinem. A nakonec je displej připojen k pinům Arduino I2C. O schématu není moc co říct
Krok 4: Kód
Nahoře je vidět hrubá funkčnost kódu. Podívejme se tedy na kód blíže (soubory arduino ino jsou připojeny). Existuje řada funkcí a poté hlavní smyčka.
Hlavní smyčka
Když je měření připraveno, zobrazí se výsledky a provádění zde končí. Pokud měření ještě není provedeno, nejprve se zkontroluje, který typ baterie je vybrán, a poté napětí na vstupu. Pokud napětí překročí 0,1 V, musí být připojen alespoň nějaký druh baterie. V tomto případě je povolán podprogram, aby se pokusil zjistit, kolik článků je v baterii, aby rozhodl, jak testovat. Počet buněk je víceméně informací, které by bylo možné lépe využít, ale v této verzi je hlášeno pouze prostřednictvím sériového rozhraní. Pokud je vše v pořádku, zahájí se proces vybíjení a v každém kole hlavní smyčky se vypočítá kapacita baterie. Na konci hlavní smyčky je displej naplněn známými hodnotami.
Postup při zobrazování výsledků
Funkce showResults jednoduše nastaví řádky, které se mají zobrazit na displeji, a také řetězec, který se má odeslat do sériového rozhraní.
Postup měření napětí
Na začátku funkce se měří Vcc Arduina. Je nutné, aby bylo možné vypočítat napětí naměřená pomocí analogových vstupů. Poté se napětí baterie měří pomocí rozsahu 20 V, aby bylo možné rozhodnout, který rozsah použít. Poté se vypočítá napětí baterie i napětí rezistoru. Měření napětí baterie využívá třídu DividerInput, která má metody čtení a napětí pro získání hrubého odečtu nebo vypočítaného napětí dotyčného analogového vstupu.
Postup při výběru použitých hodnot
Ve funkci selectUsedValues se uhodne počet článků a nastaví se horní a dolní mez baterie pro použití s postupem vybíjení. Také měření je označeno jako spuštěné. Limity pro tento postup jsou nastaveny na začátku globálních proměnných. Ačkoli by mohly být konstantní a mohly by být také definovány uvnitř procedury, protože se nepoužívají globálně. Ale vždy je co zlepšovat:)
Postup pro výpočet kapacity baterie
Funkce vybíjení se stará o skutečné počítání kapacity baterie. Jako parametry dostává nízké a vysoké limity napětí pro testovanou baterii. Vysoká hodnota se v této verzi nepoužívá, ale nízká hodnota se používá k rozhodnutí, kdy zastavit testování. Na začátku funkce je počet použitelných rezistorů zjištěn pomocí funkce vytvořené pro tento účel. Funkce vrací počet odporů a současně spustí vybíjení a resetuje čítač. Poté se měří napětí a používají se společně se známou hodnotou odporu k výpočtu proudu. Nyní, když známe napětí a proud a čas od posledního měření, můžeme vypočítat kapacitu. Na konci procesu vybíjení se napětí baterie porovnává s dolním limitem a pokud klesne pod limit, fáze vybíjení se zastaví, mosfety jsou uzavřeny a měření je označeno jako připravené.
Postup pro zjištění počtu rezistorů, které se mají použít
Ve funkci selectNumOfResistors se provádí jednoduché srovnání napětí s přednastavenými hodnotami a na základě výsledku se rozhodne o počtu rezistorů, které mají být použity. Otevře se příslušný mosfet, aby se přeskočily některé odpory. Napěťové sloty jsou vybrány tak, aby maximální proud kdykoli během vybíjení zůstal mírně nad 600mA (2V/3,3Ohm = 606mA). Funkce vrací počet použitých rezistorů. Protože je ventilátor poháněn ze stejné řady jako první mosfet, musí být vždy otevřen, když probíhá vypouštění.
Krok 5: Kalibrace měřiče
Aby byl měřič zkalibrován, vytvořil jsem další aplikaci (přiloženou). Používá stejný hardware. Na začátku jsou hodnoty děliče korekcí nastaveny na 1000.
const int divCorrectionB10V = 1000; // multiplikátor korekce děliče v rozsahu 10V const int divCorrectionR10V = 1000; // multiplikátor korekce děliče v rozsahu 10V const int divCorrectionB20V = 1000; // multiplikátor korekce děliče v rozsahu 20V const int divCorrectionR20V = 1000; // multiplikátor korekce děliče v rozsahu 20V
ve funkci readVcc () závisí výsledné napětí Vcc na nastavení hodnoty na posledním řádku funkce před návratem. Na internetu obvykle najdete hodnotu 1126400L, která bude použita pro výpočet. Všiml jsem si, že výsledek není správný.
Kalibrační proces:
- Stáhněte si měřicí aplikaci do Arduina.
- V Arduinu (a v sériovém výstupu a v případě, že se ventilátor otáčí) můžete vidět, zda je zapnuto zatížení. Pokud je, otočte přepínač výběru typu baterie.
- Upravte hodnotu v readuVCC (), abyste získali správný výsledek. Vezměte hodnotu, kterou funkce dává (což je v milivoltech), a rozdělte s ní dlouhou hodnotu. Získáte surovou hodnotu interní reference. Nyní změřte skutečné napájecí napětí v milivoltech pomocí multimetru a vynásobte jej dříve vypočítanou hodnotou a získáte novou opravenou dlouhou hodnotu. V mém případě funkce vrátila 5288 mV, když skutečný Vcc byl 5,14 V. Výpočet 1126400/5288*5140 = 1094874, který jsem přednastavil na zkoušku. Vložte novou hodnotu do kódu a nahrajte ji znovu do Arduina.
- K úpravě korekčních hodnot děliče analogového vstupního rezistoru dochází pomocí nastavitelného zdroje energie, který slouží k napájení vstupu měřiče. Nejjednodušší je použít napětí od 1 V do 20 V s kroky 1 V a zaznamenávat výsledky do tabulky. V tabulce je průměr. Opravené hodnoty se vypočítají podle následujícího vzorce: „raw_value*range*Vcc/Vin“, kde raw_value je hodnota v 10VdivB, 10VdivR, 20VdivB nebo 20VdivR v závislosti na tom, která korekce se má vypočítat.
Podívejte se na tabulku, jak to pro mě vypadalo. Průměry se vypočítávají pouze z hodnot, které mají být v rozsahu, a tyto hodnoty se pak nastavují ve skutečné aplikaci měřiče.
Takhle
const int divCorrectionB10V = 998; // dělič korekce děliče v rozsahu 10V const int divCorrectionR10V = 1022; // dělič korekce děliče v rozsahu 10V const int divCorrectionB20V = 1044; // dělič korekce děliče v rozsahu 20V const int divCorrectionR20V = 1045; // dělič korekce děliče v rozsahu 20V
Úpravu hodnoty odporu lze provést poskytnutím určitého napětí na vstup (tj. 2 V), přepnutím přepínače typu bat (pro zapnutí zátěže) a měřením vstupujícího proudu a napětí přes první odpor a rozdělením napětí proudem. Pro mě 2V dalo 607mA, což dává 2/0,607 = 3,2948 ohmů, které jsem zaokrouhlil na 3,295 ohmů. Nyní je kalibrace hotová.
Krok 6: Poslední POZNÁMKA
Tady jedna důležitá poznámka. Je nezbytné mít všechna připojení v prvotním stavu od baterie k odporům. Měl jsem jedno špatné připojení a přemýšlel jsem, proč jsem dostal v odporové mřížce o 0,3 V méně voltů než na baterii. To znamenalo, že proces měření skončil téměř okamžitě s 1,2V NiCd články, protože spodní hranice 0,95V byla dosažena rychle.
Doporučuje:
Tester kapacity baterie pomocí Arduina [Lithium-NiMH-NiCd]: 15 kroků (s obrázky)
Tester kapacity baterie pomocí Arduina [Lithium-NiMH-NiCd]: Vlastnosti: Identifikace falešné lithium-iontové/lithium-polymerové/NiCd/NiMH baterie Nastavitelné zatížení konstantním proudem (lze také upravit uživatelem) Schopné měřit kapacitu téměř jakýkoli typ baterie (pod 5 V) Snadné pájení, sestavování a používání
DIY tester kapacity baterie Arduino - V2.0: 11 kroků (s obrázky)
DIY Arduino Battery Capacity Tester - V2.0: V dnešní době jsou falešné lithiové a NiMH baterie všude, kde se prodávají reklamy s vyššími kapacitami, než je jejich skutečná kapacita. Je tedy opravdu těžké rozlišit skutečnou a falešnou baterii. Podobně je těžké poznat
ZB2L3 Tester kapacity baterie: 6 kroků
ZB2L3 Tester kapacity baterie: Specifikace: Napájecí napětí: DC4,5-6V (konektor micro USB) Provozní proud: méně než 70mA Nabíjecí napětí: 1,00V-15,00V Rozlišení 0,01V Rozsah koncového napětí: 0,5-11,0V Podporováno proudem: 3,000A 0,001 Rozlišení Maximální napětí
3 X 18650 Tester kapacity baterie: 6 kroků
3 X 18650 Tester kapacity baterie: Existuje mnoho návodů, jak vytvořit testery kapacity založené na Arduinu přes internet. Jde o to, že testování kapacity baterie je poměrně dlouhý proces. Řekněme, že chcete vybít 2000mAh baterii proudem ~ 0,5A. Bude to trvat navždy
Tester kapacity baterie Li-Ion (tester lithiové energie): 5 kroků
Tester kapacity baterie Li-Ion (tester lithiové energie): ============ VAROVÁNÍ & UPOZORNĚNÍ =========== Li-Ion baterie jsou velmi nebezpečné, pokud s nimi není správně zacházeno. ==========================================