Měřič vnitřního odporu baterie na ATtiny85: Schéma a program
V ideálním případě by baterie měla mít vnitřní odpor nula. Ale nic na tomto světě není dokonalé, včetně baterií, a elektrody baterie nejsou 100% vodiče, což uvnitř baterie vytváří malý odpor, který se nazývá její vnitřní odpor. V praxi mají baterie téměř vždy nějaký vnitřní odpor. Například pro alkalickou AA baterii na papíře je to asi 0.1Ω, pro 9voltovou alkalickou baterii – asi 1Ω, pro lithium-polymerovou baterii – od 20 do 30mΩ. V tomto případě se může vnitřní odpor baterie výrazně změnit v důsledku vysokého zatížení baterie.

V tomto článku se budeme zabývat vytvořením jednoduchého měřiče vnitřního odporu baterie na mikrokontroléru AVR ATtiny85. S ním můžeme změřit vnitřní odpor libovolné lithiové baterie a zobrazit jej na OLED obrazovce. Obvod projektu je sestaven na desce plošných spojů vyrobené pomocí služby PCB.
Dříve jsme na našich webových stránkách recenzovali následující podobné projekty různých měřicích zařízení:
- Tester kapacity Li-ion baterie 18650 na Arduinu;
- Tester kapacity baterie 18650 založený na Arduinu;
- chytrý měřič energie na ESP12 a Arduino.
Požadované komponenty
- Mikrokontrolér Attiny85 (koupit na AliExpress).
- Operační zesilovač LM358 (koupíte na AliExpress).
- Rezistor 1 Ohm 5 W – 2 ks. (koupit na AliExpress).
- Rezistor 1 kOhm (koupit na AliExpress).
- Nízký VGS Mosfet.
- Knoflík.
- OLED displej s rozlišením 128X64 a podporou rozhraní I2C (koupit na AliExpress).
- Držák baterie.
- Kondenzátor 0,1 μF (koupit na AliExpress).
Reklama: LLC “ALIBABA.KOM (RU)” DIČ: 7703380158
Obecné principy činnosti měřiče vnitřního odporu baterie
Jedním z nejjednodušších způsobů měření vnitřního odporu baterie je použití děliče napětí. Použijeme to v našem projektu. Použijeme kompozitní rezistor vyrobený ze dvou 2 ohmových rezistorů. Ale odpory vyráběné moderním průmyslem mají určité tolerance pro jejich hodnocení, ve většině případů je tato tolerance nyní 5%. Proto je vhodné změřit skutečný odpor rezistoru pro náš projekt pomocí multimetru.

Jak můžete vidět z obrázku, multimetr ukázal odpor našeho kompozitního rezistoru jako 1,7 ohmu. Je ale potřeba počítat s chybou multimetru a tolerancí rezistoru. Po chvíli přemýšlení jsme usoudili, že náš rezistor s teoretickým odporem 2 ohmy má reálný odpor 1,2 ohmy, takže tuto hodnotu použijeme při našich výpočtech.
Poznámka : Multimetry nejsou ve většině případů moc dobré v měření odporu, ale mnohem lépe měří napětí. V tomto případě můžete výrazně zvýšit přesnost měření odporu pomocí multimetru pomocí 500mA nebo 1A DC zdroje, procházejícího tento proud přes rezistor a měřením úbytku napětí na rezistoru multimetrem.
A v našem případě potřebujeme změřit napětí nezatížené baterie, jak je znázorněno na následujícím obrázku.

Jak můžete vidět z obrázku, napětí baterie je 3,85 voltu a musíme vypočítat teoretický proud, který bude protékat rezistorem, pokud jej připojíme k baterii. K tomu použijeme známý Ohmův zákon – I = V/R:
I = 3.85 / 1.2 = 3.236 Amper
Tzn., že pokud k této baterii připojíme rezistor 1,2 Ohm, poteče jí proud 3,22 A s připojenou zátěží potřebujeme změřit i napětí.

Jak je vidět z obrázku, napětí baterie při zátěži je Vload = 3.72 V. Odečteme-li tuto hodnotu napětí od napětí baterie bez zátěže, dostaneme úbytek napětí na vnitřním odporu baterie.
Vnitřní = 3.85 – 3.72 = 0.13 V
Nyní, abychom určili vnitřní odpor baterie, musíme jednoduše vydělit tento výsledný úbytek napětí vypočteným proudem.
ISR = ( Vdrop – interní / proud ) = 0.13 / 3.236 = 0.04017 ohmů
Získali jsme hodnotu vnitřního odporu baterie rovnou 0.04017 Ohm. Porovnejme to s hodnotou získanou pomocí profesionálního měřícího přístroje.

Jak můžete vidět z obrázku, hodnota, kterou jsme získali, je poměrně blízko hodnotě získané pomocí profesionálního nástroje.
Poznámka : Když použijete popsaný způsob měření vnitřního odporu baterie pomocí mikrokontroléru Attiny85, budete muset vzít v úvahu vnitřní odpor tranzistoru MOSFET a odpor vodičů na desce plošných spojů našeho projektu.
Některé MOSFETy nejsou plně zapnuté při 5V, takže musíte vzít v úvahu všechny ve vašem kódu a zkalibrovat kód podle této hodnoty.
Schéma projektu
Schéma zapojení měřiče vnitřního odporu baterie ATtiny85 je na následujícím obrázku. Diagram je rozdělen do několika částí, abyste lépe pochopili jeho podstatu.

Nejprve se podívejme na část obvodu, která řídí proud z baterie (Battery Current Controller). Hlavním účelem této části obvodu je chránit MOSFET před významnými proudovými rázy. Jak vidíte, na neinvertující vstup (pin3) operačního zesilovače přivádíme signál PWM (pulsně šířková modulace) z mikrokontroléru. Tento signál je filtrován pomocí 100nF kondenzátoru a 100kΩ odporu a poté je tento filtrovaný signál přiváděn na kolík 3 operačního zesilovače. Když je napětí na tomto neinvertujícím vstupu větší než napětí na invertujícím vstupu, výstup operačního zesilovače bude vysoký. Tato vysoká úroveň přepne MOSFET do otevřeného stavu a v důsledku toho začne proud protékat rezistorem R1 a podle toho se na něm vytvoří pokles napětí. Pokud je tento úbytek napětí větší než úroveň napětí na neinvertujícím vstupu operačního zesilovače, pak bude výstup operačního zesilovače nízký a rezistorem přestane protékat proud. Tento proces bude pokračovat, dokud signál PWM nebude mít logickou úroveň 0.
Hlavním řídicím centrem našeho obvodu je mikrokontrolér ATtiny85, který generuje PWM signál pro řízení činnosti operačního zesilovače a měří napětí baterie pro výpočet vnitřního odporu baterie. Mikrokontrolér ATtiny85 je napájen přes USB konektor, který slouží i pro programování mikrokontroléru.
Na OLED displeji zobrazíme naměřené napětí baterie a vypočtenou hodnotu jejího vnitřního odporu. Také v obvodu máme konektor baterie (pro připojení baterie) a přepínač pro resetování mikrokontroléru.
Výroba desky plošných spojů pro náš projekt
Pro tento projekt měřiče vnitřního odporu baterie se jeho autoři (odkaz na originál je uveden na konci článku) rozhodli vyrobit desku plošných spojů, její provedení je na následujícím obrázku.

Tato deska plošných spojů byla navržena v softwaru EAGLE PCB a má rozměry 90×55 mm. Chcete-li si jej vyrobit sami, můžete si pro něj stáhnout soubory Gerber.
Přední strana DPS pro náš projekt je znázorněna na následujícím obrázku.

Na něj jsme umístili všechny součástky našeho obvodu a na zadní stranu desky jsme umístili pouze spoje. Plošný spoj je dvouvrstvý.
Zadní strana desky plošných spojů našeho projektu je znázorněna na následujícím obrázku.

A další obrázek ukazuje 3D model našeho měřiče vnitřního odporu baterie. Zde vidíte umístění všech komponentů obvodu našeho projektu, včetně chladiče, 5W rezistoru, micro USB konektoru a vypínače.

Operační zesilovač a mikrokontrolér ATtiny85 jsou umístěny na zadní straně desky, jejíž 3D model je na následujícím obrázku.

Objednání desky plošných spojů pro projekt
Autoři projektu si pro něj objednali výrobu plošného spoje na službě PCBWay. Jeho výrobu si samozřejmě můžete objednat u jakékoli jiné služby, se kterou jste zvyklí pracovat. Pro objednání výroby desky plošných spojů na službě PCBWay postupujte podle následujících kroků:
Krok 1. Přejděte na www.pcbway.com a zaregistrujte se, pokud tam ještě nemáte účet. Poté na jeho záložce PCB Prototype zadejte rozměry vašeho PCB, počet vrstev, které má, a počet kopií desky, které potřebujete vytvořit.

Krok 2. Poté klikněte na tlačítko ‘Citovat nyní’. Poté se dostanete na stránku, kde musíte zadat řadu dalších parametrů pro výrobu desky s plošnými spoji: její materiál, tloušťku, počet vrstev atd. Většinu z nich můžete ponechat jako výchozí, které služba nabízí.

Krok 3. Nahrajte Gerber soubory vaší desky plošných spojů do služby PCBWAY, ta zkontroluje jejich správnost a poté můžete přistoupit k platbě za objednávku.

Sestavení struktury projektu
Pár dní po objednání desky plošných spojů ji autoři projektu obdrželi v hotové podobě (v obalu). Přední a zadní strana vyrobeného plošného spoje je znázorněna na následujícím obrázku. Kvalita plošného spoje byla dle očekávání výborná.

Poté autor projektu na tuto desku plošných spojů připájel potřebné součástky a ve výsledku dostal následující sestavený návrh měřiče vnitřního odporu baterie.

Vysvětlení programu Arduino pro nahrávání do mikrokontroléru Attiny85
Úplný kód programu je uveden na konci článku, ale zde stručně zvážíme jeho hlavní fragmenty.
Před napsáním programového kódu je potřeba stáhnout knihovnu pro práci s OLED displejem s řadičem SSD1306 a nainstalovat ji do vašeho Arduino IDE.
Nejprve do kódu programu zahrneme potřebné knihovny.