Obsah:

Ďalší tester kapacity batérie: 6 krokov
Ďalší tester kapacity batérie: 6 krokov

Video: Ďalší tester kapacity batérie: 6 krokov

Video: Ďalší tester kapacity batérie: 6 krokov
Video: Аккумуляторы HAKADI Li Ion - AA и AAA на 1,5 Вольта, с зарядкой по USB C, честный тест 2024, Júl
Anonim
Ďalší tester kapacity batérie
Ďalší tester kapacity batérie
Ďalší tester kapacity batérie
Ďalší tester kapacity batérie

Prečo ešte jeden tester kapacity

Prečítal som si mnoho rôznych pokynov na zostavenie testera, ale žiadny z nich nevyhovuje mojim potrebám. Chcel som byť schopný otestovať aj viac ako len pripájanie článkov NiCd/NiMH alebo Lion. Chcel som byť schopný otestovať batériu elektrického náradia bez toho, aby som ju najskôr rozobral. Rozhodol som sa teda na vec bližšie pozrieť a navrhnúť vlastnú. Jedna vec vedie k druhej a nakoniec som sa rozhodol napísať inštrukciu sám. Tiež som sa rozhodol nepokračovať do všetkých podrobností o tom, ako skutočne zostaviť tester, pretože každý sa môže rozhodnúť pre určité možnosti, ako napríklad aký veľký odpor použiť alebo či je potrebný plošný spoj alebo stačí Veroboard a taktiež je veľa návodov, ako nainštalovať orla alebo ako vyrobiť DPS. Inými slovami, sústredím sa na schémy a kód a na kalibráciu testera.

Krok 1: História - verzia 1

História - verzia 1
História - verzia 1

Hore je prvá verzia s nižšie uvedenými a pridanou podporou vstupu 10 V (R12 a R17 a Q11 a Q12).

Prvá verzia bola viac -menej prevzatá z pokynu deba168 (bohužiaľ nemôžem nájsť jeho návod na poskytnutie odkazu). Vykonali sa iba niektoré drobné zmeny. V tejto verzii som mal jeden 10 ohmový záťažový odpor ovládaný mosfetom. To však prinieslo určité problémy. Pri testovaní jedného článku NiCd alebo NiMH bol požadovaný čas ľahko zmeraný v hodinách, ak nie v dňoch. Batéria s kapacitou 1 500 mAh trvala viac ako 12 hodín (prúd bol iba 120 mAh). Na druhej strane, prvá verzia mohla testovať iba batérie pod 10V. A plne nabitá 9,6V batéria môže byť v skutočnosti až 11,2V, čo sa kvôli limitu 10V nepodarilo otestovať. Bolo treba niečo urobiť. Najprv som len pridal pár mosftov a rezistorov, aby rozdeľovače napätia dokázali prepúšťať viac ako 10V. To však na druhej strane prinieslo ďalší problém. Plne nabitá batéria 14,4 V môže mať napätie až 16,8 V, čo pri odpore 10 ohmov znamenalo prúd 1,68 A a samozrejme aj stratový výkon zo záťažového odporu takmer 30 W. Takže pri nízkom napätí je príliš dlhý testovací čas a pri vysokom napätí je príliš vysoký prúd. Očividne to nebolo adekvátne riešenie a bol potrebný ďalší vývoj.

Krok 2: Verzia 2

Chcel som riešenie, kde by prúd zostal v určitých medziach bez ohľadu na napätie batérie. Jedným z riešení by bolo použiť PWM a iba jeden odpor, ale ja som uprednostnil riešenie bez pulzujúceho prúdu alebo potrebu odvádzať teplo mosfetu. Preto som vytvoril riešenie s 10 napäťovými slotmi, každý so šírkou 2 V, s použitím 10 rezistorov 3,3 ohmu a mosfetu pre každý odpor.

Krok 3: Takto to dopadlo

Takto to dopadlo
Takto to dopadlo

Niekto by mohol tvrdiť, že strata napätia na mosfete je zanedbateľná, pretože odpor mosfetu je taký nízky, ale výber mosfetu som nechal na čítačke, a preto môže odpor ísť aj cez 1 ohm, kde začína záležitosť. Vo verzii 1 by výber správneho mosfetu odstránil potrebu merania v nižších bodoch, ale vo verzii 2 som sa rozhodol merať napätie iba na jednom odpore, čo potom robí dôležitým skutočne mať dva meracie body. Dôvodom tejto voľby bola jednoduchosť zapojenia Veroboardu. To pridáva určité chyby presnosti, pretože namerané napätie na jednom odpore je výrazne menšie ako meranie na všetkých odporoch. Pri výbere komponentov som sa rozhodol použiť to, čo som už mal po ruke alebo čo som mohol ľahko získať. Výsledkom bol nasledujúci kusovník:

  • Arduino Pro Mini 5V! DÔLEŽITÉ! Použil som 5V verziu a všetko je na nej založené
  • 128x64 I2C OLED displej
  • Rezistory 10 x 5 W, 3,3 ohmov
  • 3 x 2n7000 mosfety
  • 10 x MOSFET IRFZ34N
  • Rezistory 6 x 10 kOhm
  • Rezistory 2 x 5 kOhm
  • 16V 680uF kondenzátor
  • 1 starý ventilátor CPU

Do schém som nepridal nasledujúce

  • pullup rezistory na linkách I2C, ktoré som si všimol, robili displej stabilnejším
  • elektrické vedenie
  • kondenzátor v rade 5V, ktorý tiež stabilizoval displej

Pri testovaní som si všimol, že záťažové odpory sa celkom zahrievajú, najmä ak sa všetky používajú. Teplota sa zvýši na viac ako 100 stupňov Celzia (čo je viac ako 212 stupňov Fahrenheita) a ak má byť celý systém uzavretý v krabici, malo by byť zaistené určité chladenie. Odpory, ktoré som použil, sú 3,3 ohm / 5 W a maximálny prúd by mal nastať s asi 2 V na odpor, čo dáva 2 V / 3,3 = 0,61 A, čo má za následok 1,21 W. Nakoniec som do krabice pridal jednoduchý ventilátor. Väčšinou preto, že som náhodou mal v okolí nejaký starý ventilátor CPU.

Schematická funkčnosť

Je to celkom priame a samovysvetľujúce. Testovaná batéria je zapojená do série odporov a uzemnenia. Body merania napätia sú pripojenie batérie a prvý odpor. Deliče napätia sa potom použijú na zníženie napätia na úroveň, ktorá lepšie vyhovuje Arduinu. Jeden digitálny výstup slúži na výber buď 10V alebo 20V rozsahu rozdeľovačov. Každý odpor v záťaži je možné jednotlivo uzemniť pomocou mosfetov, ktoré poháňa priamo Arduino. A nakoniec je displej pripojený k pinom Arduino I2C. O schéme nie je veľa čo povedať J

Krok 4: Kód

Kód
Kód

Hore je vidieť hrubú funkčnosť kódu. Pozrime sa teda bližšie na kód (súbory arduino ino sú priložené). Existuje množstvo funkcií a potom hlavná slučka.

Hlavná slučka

Keď je meranie pripravené, zobrazia sa výsledky a výkon sa tam skončí. Ak meranie ešte nie je vykonané, najskôr sa skontroluje, ktorý typ batérie je zvolený, a potom napätie na vstupe. Ak napätie presiahne 0,1 V, musí byť pripojený aspoň nejaký druh batérie. V tomto prípade sa zavolá podprogram, aby sa pokúsil zistiť, koľko článkov je v batérii, aby sa rozhodol, ako testovať. Počet buniek je viac -menej informácia, ktorú by bolo možné lepšie využiť, ale v tejto verzii je hlásená iba prostredníctvom sériového rozhrania. Ak je všetko v poriadku, spustí sa proces vybíjania a v každom kole hlavnej slučky sa vypočíta kapacita batérie. Na konci hlavnej slučky je displej osadený známymi hodnotami.

Postup pri zobrazovaní výsledkov

Funkcia showResults jednoducho nastavuje riadky, ktoré sa majú zobrazovať na displeji, a tiež reťazec, ktorý sa má odoslať do sériového rozhrania.

Postup merania napätí

Na začiatku funkcie sa meria Vcc Arduina. Je potrebné, aby bolo možné vypočítať napätie namerané pomocou analógových vstupov. Potom sa napätie batérie zmeria pomocou rozsahu 20 V, aby sa mohol rozhodnúť, ktorý rozsah použiť. Potom sa vypočíta napätie batérie aj napätie rezistora. Merania napätia batérie využívajú triedu DividerInput, ktorá má metódy čítania a napätia na získanie surového odpočtu alebo vypočítaného napätia príslušného analógového vstupu.

Postup pri výbere použitých hodnôt

Vo funkcii selectUsedValues je uhádnutý počet článkov a nastavené horné a dolné limity pre batériu, ktoré sa majú použiť pri vybíjaní. Tiež meranie je označené ako spustené. Limity pre tento postup sú stanovené na začiatku globálnych premenných. Aj keď môžu byť konštantné a dajú sa definovať aj v rámci postupu, pretože sa nepoužívajú globálne. Ale vždy je čo zlepšovať:)

Postup výpočtu kapacity batérie

Funkcia vybíjania sa stará o skutočné spočítanie kapacity batérie. Ako parametre dostane nízke a vysoké limity napätí pre testovanú batériu. Vysoká hodnota sa v tejto verzii nepoužíva, ale nízka hodnota sa používa na rozhodnutie, kedy testovanie zastaviť. Na začiatku funkcie je počet použitých rezistorov zistený pomocou funkcie vytvorenej na tento účel. Funkcia vráti počet odporov a súčasne spustí vybíjanie a vynuluje počítadlo. Potom sa zmeria napätie a použije sa spolu so známou hodnotou odporu na výpočet prúdu. Teraz, keď poznáme napätie a prúd a čas od neho uplynul od posledného merania, môžeme vypočítať kapacitu. Na konci procesu vybíjania sa napätie batérie porovná s dolným limitom a ak klesne pod limit, fáza vybíjania sa zastaví, mosfety sú zatvorené a meranie je označené ako pripravené.

Postup na zistenie počtu rezistorov, ktoré sa majú použiť

Vo funkcii selectNumOfResistors sa vykonáva jednoduché porovnanie napätia s prednastavenými hodnotami a na základe výsledku sa rozhodne o počte odporov, ktoré sa majú použiť. Otvorí sa príslušný mosfet, aby sa preskočili niektoré rezistory. Napäťové sloty sú zvolené tak, aby maximálny prúd kedykoľvek počas vybíjania zostal mierne nad 600mA (2V/3,3Ohm = 606mA). Funkcia vracia počet použitých rezistorov. Pretože sa ventilátor poháňa z rovnakého vedenia ako prvý mosfet, musí byť pri vypúšťaní vždy otvorený.

Krok 5: Kalibrácia meradla

Kalibrácia merača
Kalibrácia merača

Na kalibráciu meradla som vytvoril ďalšiu aplikáciu (priloženú). Používa rovnaký hardvér. Na začiatku sú hodnoty deliča korekcie nastavené na 1 000.

const int divCorrectionB10V = 1000; // multiplikátor korekcie deliča v rozsahu 10V const int divCorrectionR10V = 1000; // multiplikátor korekcie deliča v rozsahu 10V const int divCorrectionB20V = 1000; // multiplikátor korekcie deliča v rozsahu 20V const int divCorrectionR20V = 1000; // multiplikátor korekcie deliča v rozsahu 20V

vo funkcii readVcc () závisí výsledné napätie Vcc od nastavenia hodnoty na poslednom riadku funkcie pred návratom. Na internete zvyčajne nájdete hodnotu 1126400 l, ktorá sa má použiť na výpočet. Všimol som si, že výsledok nie je správny.

Kalibračný proces:

  1. Stiahnite si meraciu aplikáciu do Arduina.
  2. Na Arduine (a na sériovom výstupe a či sa ventilátor otáča) môžete vidieť, či je zapnuté zaťaženie. Ak je, otočte prepínač typu batérie.
  3. Upravte hodnotu v readuVCC (), aby mal správny výsledok. Vezmite hodnotu, ktorú funkcia dáva (ktorá je v milivoltoch) a rozdeľte ňou dlhú hodnotu. Dostanete surovú hodnotu internej referencie. Teraz zmerajte skutočné napájacie napätie v milivoltoch pomocou multimetra a vynásobte ho predtým vypočítanou hodnotou a získate novú opravenú dlhú hodnotu. V mojom prípade funkcia vrátila 5288 mV, keď skutočný Vcc bol 5,14 V. Výpočet 1126400/5288*5140 = 1094874, ktorý som znova doladil na skúšku. Vložte novú hodnotu do kódu a znova ju nahrajte do Arduina.
  4. Úprava korekčných hodnôt deliča analógového vstupného odporu sa deje pomocou nastaviteľného zdroja energie, ktorý sa používa na napájanie vstupu meradla. Najjednoduchšie je použiť napätie od 1 V do 20 V s krokom 1 V a zaznamenať výsledky do tabuľky. V tabuľke je uvedený priemer. Opravené hodnoty sa vypočítajú podľa tohto vzorca: „surová_hodnota*rozsah*Vcc/Vin“, kde surová_hodnota je hodnota v 10VdivB, 10VdivR, 20VdivB alebo 20VdivR v závislosti od toho, ktorá korekcia sa má vypočítať.

Pozrite sa na tabuľku, ako to pre mňa vyzeralo. Priemery sa vypočítajú iba z hodnôt, ktoré majú byť v rozsahu, a tieto hodnoty sa potom nastavia v aktuálnej aplikácii meradla.

Páči sa ti to

const int divKorekciaB10V = 998; // delič korekčný delič v rozsahu 10V const int divCorrectionR10V = 1022; // delič korekčný delič v rozsahu 10V const int divCorrectionB20V = 1044; // delič korekčný delič v rozsahu 20V const int divCorrectionR20V = 1045; // delič korekčný delič v rozsahu 20V

Úpravu hodnoty odporu je možné vykonať tak, že na vstup privádzate určité napätie (tj. 2 V), prepnete prepínač typu bat (na zapojenie záťaže) a zmeriate vstupný prúd a napätie na prvom rezistore a vydelíte napätie prúdom.. Pre mňa 2V dal 607mA, čo dáva 2/0,607 = 3,2948 ohmov, ktoré som zaokrúhlil na 3,295 ohmov. Teraz je kalibrácia dokončená.

Krok 6: Posledná POZNÁMKA

Tu je jedna dôležitá poznámka. Je nevyhnutné mať všetky spojenia v dobrom stave od batérie k odporom. Mal som jedno zlé pripojenie a zaujímalo ma, prečo som v mriežke rezistora dostal o 0,3 V menej voltov ako na batériu. To znamenalo, že proces merania skončil takmer okamžite s 1,2 V NiCd článkami, pretože spodná hranica 0,95 V bola dosiahnutá rýchlo.

Odporúča: