Stránka 1 z 6

Měření napětí jednotlivých článků LiFePO4 v baterii 70S

Napsal: 16 pro 2024, 21:03
od sanoch
Zdravím, řeším problém sledování napětí na jednotlivých článcích v seskupení 70S.
Chce to měřit docela přesně.
Napadly mně 3 řešení:

1. Arduino diferenciální měření
Problém je nedostatek AD převodníků.
2. Arduino s přepínáním AD postupně na jednotlivé články pomocí mosfet sítě
Narážím na problém s GND.
3. Na každém článku vlastní Arduino nano nebo Tinny nebo AD převodník komunikující s okolím pomocí optočleny oddělenou komunikaci I2C, SPI atd.

Prosím tedy o pomoc, radu, jak by se tento problém dal elegantně vyřešit.
Asi bych nejraději zvolil nějaký jednočip, kvůli možnosti další implementace např. balancing.

Předem děkuji za odpovědi.

Napsal: 16 pro 2024, 22:02
od bum
Kdysi jsem potřeboval měřit napětí na šesti článcích NI-CD při nabíjení, vybíjení složených do acupacu, kdy jsem si při skládání vyvedl vývody a ty použil na měření napětí jednotlivých článků. Tehdy vyrobeným přípravkem a AD převodníkem kdy se programově spinali relátka a ty pak Spínali GND každého článku společně s kladným vývodem každeho článku na vstup AD. Na možnost měření se dá použít ARDUINO a k němu přípravek na přepínání článků, pak stačí jeden AD vstup. Pro inspiraci mám popsaný přípravek na webu v sekci články a název článku je vybíjení 6 beterii.

Napsal: 16 pro 2024, 22:19
od rnbw
Existuju na to specialne optocleny, napr. VOA300:
https://www.vishay.com/docs/80364/isola ... voa300.pdf

Napsal: 16 pro 2024, 23:02
od samec
Na to sú špeciálne čipy. Na 70S potrebuješ viacero čipov. Napájanie je potom z meraných článkov a komunikácia galvanicky oddelená. Arduinom vieš teoreticky merať "naraz" 6 článkov, ale arduino nemá dosť presný AD prevodník, má veľkú spotrebu a hlavne nemá bezpečnostné mechanizmy na odhalenie rôznych porúch, ako je napríklad zlý kontakt s meraným článkom. Pozri výrobcov čipov, určite niečo nájdeš.

Napsal: 16 pro 2024, 23:37
od Celeron
Tady máš odkaz na schema jak se měří jedním vstupem AD převodníku napětí jednotlivých článků v modelářských nabíječkách při balancování. Je to pro 6S, těch 6 operáků vpravo nahoře s multiplexorem. Třeba by to šlo použít jako inspiraci.
Jeti Models dělá telemetrickej modul MULI6S pro měření 6S, který se dají zapojovat do kaskády na měření 6, 12,18 atd článků. Schema ale od toho nemám. Taky možná inspirace.

Napsal: 17 pro 2024, 07:56
od dracekvo
Když to budeš stavět, tak se stejně na lepší cenu nedostaneš.

https://www.aliexpress.com/item/1005001758226775.html

Já si kdysi stavětl BMS z jednotlivých bloků co komunikovali po opticky oddělené lince.
Ale stavěl jsem to klasicky rovnou s mCU. Nevím proč na něco takového používat arduino se zbytečným balastem, když to můžu navrhnout efektivněji, levněji a vše na jedné desce včetně AD převodníku, referenčního napětí a optočlenů.

Mimochodem ty interní AD převodníky a referenční napětí stojí za starou belu. Je to dobrý maximálně na hraní.

Napsal: 17 pro 2024, 08:00
od sanoch
Děkuji za odpovědi.
Bohužel, se mi žádné z navrhovaných řešení moc nevyhovuje.

"bum" - taky jsem myslel na tuto variantu. Zápory moc relátek, nebude umět nic jiného.

"rnbw" - moc pěkné, určitě použitelné. Zápory dostupnost nadrobno, potažmo cena, nebude umět nic jiného.

"samec" - vím, že jsou specializované čipy. Bohužel pro mně nevím, co mám vlastně hledat. Co jsem našel(bylo toho málo), nevyhovovalo požadavkům, nebude umět nic jiného. S tím arduinem sice pravda, ale mám dotaz. Čím je zapříčiněna nepřesnost převodníku v arduinu? Je to jeho nedokonalost, nebo je to otázka courající reference?

"Celeron" - moc složité, neuniverzální. Ten telemetrický modul je pěkný, bohužel pro mně cenově mimo mísu.

Stejně děkuji za podněty.

Představoval jsem si to asi takto. Arduino jsem chtěl použít na testování, ve finále bych tam dal malý Tiny třeba 45 nebo 85. Pokud jsem datashet pochopil správně, tak uspaný má spotřebu 0.1uA. Tiny by spal a probouzel by se buď na požadavek z řídícího modulu nebo sám v nějakých intervalech( řekněme 1 minuta), při nabíjení by byl zapnut trvale, aby hlídal max. napětí a spustil při potřebě balanc.
Měl jsem napsat, že bude řídící modul (Arduino nebo RPi).
Chci to mít modulární, pro upgrady apod.
Chtěl bych to mít jako součást článku, který bude složen z 20P LiFePO4 25Ah(reálně okolo 18Ah). Z článku by tedy čouhaly jen silové vývody a komunikace.

Předem děkuji za odpovědi.

Napsal: 17 pro 2024, 08:48
od lesana87
AD převodník v AVR je 10bitový, takže se hodí tak na jeden dva články, na víc článků už je rozlišení nedostatečné. Když je AVR uspané tak, aby bralo 0,1 uA, tak se samo probudit neumí. Je dobré obvod navrhnou tak, aby se procesor probudil, jakmile do/z článků začne téct nějaký proud. A nevím, jak jsi schopný programátor, ale abys pak při přechodu z velkého Arduina nezjistil, že se ti do té Tiny nic moc nevejde. :)

Napsal: 17 pro 2024, 09:05
od rnbw
S nejakymi malymi lacnymi MCU to moze byt najlepsie a po HW stranke najlacnejsie. Naklady sa ale presuvaju do SW. Naprogramovat spolahlivu komunikaciu so 70 zariadeniami, nejako ich identifikovat, ...

Napsal: 17 pro 2024, 09:10
od dracekvo
lesana87: Jenže on se měří jeden článek. Nevidím důvod, proč měřit více článků najednou.
Však se podívej na to schema imax b6, tam se taky měří jen jeden článek přes analogový multiplex.

Navíc ještě u li-xx baterie mě zajímá napětí např od 2V do 4,5V. Cokoliv nad a pod je havarijní stav, kdy je vhodné veškeré zařízení od baterie odpojit.
Takže na to 10bit stačí.
Jen z mé zkušenosti je lepší použít externí AD převodník a externí zdroj referenčního napětí.
Obě tyto interní věci v mcu jsou značně nestabilní, takže jsou dobrý jen na hraní.

rnbw: jak jsem psal. Měl jsem kdysi vyrobění balancer. mCU jsem neuspával, protože byl na tak velké baterii, že mě nějaká spotřeba v řádu mA netrápila.
Balancer žil zcela autonomě a komunikace byla jen pro četní a nastavení hodnot z centrálního mCU na kterém jsem měl display.
Komunikaci jsem ukradl z ds18b20 + jsem přidal druhý signál vysílaný z mástra CLK abych to měl snažší na programování.
A i se 70 zařízeníma by to fungovalo. Jen by se hodnoty aktualizovali na displeji třeba jednou za 3 vteřiny.
Jelikož to bylo pouze pro zobrazovač a BMS fungovalo autonomě, tak interval obnovy byl celkem nedůležitý.
Jen to nebylo tak stabilní, protože jsem používal interní AD převodník s interním referenčním napětím.
Chtěl jsem udělat verzi 2 s externím AD a ref. napětím, ale dříve jsem elektrárnu zrušil.
Bohužel mi zůstal jen nějaký rozpracovaný projekt v Proteusu. O finální verzi jsem nějak přišel při výměně počítačů.

Napsal: 17 pro 2024, 09:22
od lesana87
dracekvo píše:lesana87: Jenže on se měří jeden článek. Nevidím důvod, proč měřit více článků najednou.
Však se podívej na to schema imax b6, tam se taky měří jen jeden článek přes analogový multiplex.
Samozřejmě, ale jsou to další obvody (spotřeba) navíc.
Při 4,5V na LiIon článku už by mě asi nejvíc zajímalo, kde je hasičák. :D

Napsal: 17 pro 2024, 09:30
od sanoch
Zdravím lesano,

ano, vím, že je 10-bitový. Bude to na každý článek zvlášť, takže se mi zdá přesnost dostatečná. Nehledě k tomu, že bych tam dal přesnou referenci, třeba MCP1501, tudíž bych dosáhl rozlišení 1mV.
No, s programováním zkušenosti mám, ale přiznám, že žádná sláva. Věřím ale, že to nějak zvládnu i třeba z vaší pomocí. Budu se tomu plně věnovat až o svátcích, jen teď sbírám informace.
Než jsem to napsal, tak byly další odpovědi.
Lesana mi poskytla vlastně kvalitní řešení. Taky se mi zdá řešení s externím převodníkem lepší, pokud je skutečně vnitřní převodník v Tiny nestabilní je vlastně rozhodnuto.
Použil bych opět MCP1501 4.096V a A/D příkladně MCP3221.

Předem děkuji za odpovědi a názory.

Napsal: 17 pro 2024, 09:36
od lesana87
Při měření 4V článku, nebudeš mít s 10bitovým převodníkem rozlišení 1mV.

Napsal: 17 pro 2024, 09:42
od dracekvo
Pokud to bude napájené přímo z baterky, tak referenční napětí 4V ti nebude fungovat. To by jsi tam musel mít step up měnič na 5V.

Já měl referenci na 1.024V(nebo 2.048, už se nepamatuju) + dělič z metalických odporů.
A řídil jsem to PICem co fungoval snad od 2V, už si nepamatuju přesný typ.

Tohle mi zbylo z vývoje. Tak snad pro inspiraci.

EDIT: jak se dívám na schema, tak jsem měl asi reference dvě. Abych zvýšil rozlišení ADC, protože tě zajímá jen určitá část napětí baterie a je zbytečné tam mít rozsah od 0 do 2V.

Napsal: 17 pro 2024, 10:05
od sanoch
Ano, to byl omyl. Samozřejmě 1.024V nebo 2.048V.