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

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
sanoch
Příspěvky: 437
Registrován: 04 led 2012, 00:00
Bydliště: Volyně

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

#1 Příspěvek 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.
Uživatelský avatar
bum
Příspěvky: 290
Registrován: 04 zář 2011, 00:00
Kontaktovat uživatele:

#2 Příspěvek 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.
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#3 Příspěvek od rnbw »

Existuju na to specialne optocleny, napr. VOA300:
https://www.vishay.com/docs/80364/isola ... voa300.pdf
Uživatelský avatar
samec
Příspěvky: 6669
Registrován: 19 pro 2017, 00:00

#4 Příspěvek 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š.
Uživatelský avatar
Celeron
Příspěvky: 20509
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#5 Příspěvek 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.
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
dracekvo
Příspěvky: 712
Registrován: 10 úno 2009, 00:00

#6 Příspěvek 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í.
Naposledy upravil(a) dracekvo dne 17 pro 2024, 08:01, celkem upraveno 1 x.
Uživatelský avatar
sanoch
Příspěvky: 437
Registrován: 04 led 2012, 00:00
Bydliště: Volyně

#7 Příspěvek 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.
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#8 Příspěvek 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. :)
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#9 Příspěvek 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, ...
Uživatelský avatar
dracekvo
Příspěvky: 712
Registrován: 10 úno 2009, 00:00

#10 Příspěvek 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čů.
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#11 Příspěvek 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
Uživatelský avatar
sanoch
Příspěvky: 437
Registrován: 04 led 2012, 00:00
Bydliště: Volyně

#12 Příspěvek 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.
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#13 Příspěvek od lesana87 »

Při měření 4V článku, nebudeš mít s 10bitovým převodníkem rozlišení 1mV.
Uživatelský avatar
dracekvo
Příspěvky: 712
Registrován: 10 úno 2009, 00:00

#14 Příspěvek 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.
Přílohy
Bez názvu.png
Bez názvu.png
Uživatelský avatar
sanoch
Příspěvky: 437
Registrován: 04 led 2012, 00:00
Bydliště: Volyně

#15 Příspěvek od sanoch »

Ano, to byl omyl. Samozřejmě 1.024V nebo 2.048V.
Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“