2.6x přesnější měření než běžně na Arduinu

Home Assistant, Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

2.6x přesnější měření než běžně na Arduinu

Příspěvek od mypower.cz »

Ahoj.

CIste teoreticky... :sm1:

Mejme baterky obecne, ktere maji nominalne 24V. Maximalne s rezervou rekneme 32V, vse co je pod 20 nas nezajima, to uz jsme mrtvi a vypiname vse co vypnout jde.
Pokud prevedeme 32V -> 5V, zjistime, ze nejnizsi hodnota, kterou kdy fakticky budeme merit je 20V -> 3.125V.
V poctu dilku u 10ti bitoveho rozliseni A/D prevodniku je to 32V = 1023, 20V = 639. 639 hodnot nikdy potrebovat nebudeme. Rozlisujeme jen 384 hodnot.
Presnost je 32V - 20V = 12V / 384 = 0.0312V , nebo take 32V / 1023 = 0.0312V = totez.

No a me ted napadlo: ::rolleyes::

Co kdybychom merene napeti shiftnuli o 20V dolu, orezali vse co je na shiftnutem vystupnim signalu pod 0V a merili od 32V - 20V = 12V po 20V - 20V = 0V.
Vse pod 20V je zaporne. Napriklad 0V - 20V = -20V ale takovy signal je chybovy a je mozne tak treba vyvest nejaky error pin mozna i.

Pri tomto mereni nam hodnota 1023 na AD prevodniku reprezentuje nasich 32V a 0 je pro 20V. Vse pod je odfiltrovano a jako zaporne a je stale 0 navic s pinem signalizujicim error.
To mame ale 1023 dilku v rozsahu, ktery nas zajima.
Presnost by mohla byt 32V - 20V = 12V / 1023 = 0.0117V.

To je 2.6x lepsi presnost a vyuziti plneho rozsahu AD prevodniku na maximum. ::popcorn::

Tadyhle nekdo poptava opacnou funkci. Shift signalu +- 2.5V na 0-5V.
https://electronics.stackexchange.com/q ... al-to-0-5v

Je tu nejaky sikovny elektornik ktery by poradil s navrhem? S tim shiftem si asi neporadim. To je na me vyssi divci. Koncim u odporovych delicu. Tam to jeste zvladam.

Ma cenu to zkouset? Ja myslim ze primet a nakalibrovat obycejne arduino s dobrou referenci na 2.6x lepsi presnost pro mereni treba 24V baterek by nemuselo byt marne.

Diky za nazory.

:read: :write: :comp: :celebrate2:
rimi
Příspěvky: 390
Registrován: čtv říj 13, 2011 10:45 am
Bydliště: Příbor

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od rimi »

pouzivam delic se zenerkou (priblizne hodnoty pro 24V), aby se z napeti 18 - 32 stalo 0-5V, no ten AD prevodnik arduina neni moc stabilni, skace to i o 0,2V:

plus
|
zenerka na 18V
|
odpor 4k7
|
odsud drat k arduinu
|
odpor 2k7
|
spolecna zem
https://forum.mypower.cz/viewtopic.php?t=617#p7804
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Lokalita: SO, SK
Bydliště: SO, SK

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od rottenkiwi »

Teória je síce pekná, ale prax je iná. Iné je niečo merať vo Faradayovej klietke
a iné vedľa 4 x DC-DC menič, 3 x DC-AC menič na ktorom sú ešte 3 PC / 800 W a 5 žiariviek.
Vedľa toho sú 3 dualband WiFi modemy, ktoré majú 12 anténok. :)

A to už nehovorím o meraní, keď je zapnutý 400 W reprák, myslím, že to meranie,
ak bude dostatočne rýchle bude korelovať s basovou linkou mp3-ky.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
rimi
Příspěvky: 390
Registrován: čtv říj 13, 2011 10:45 am
Bydliště: Příbor

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od rimi »

rottenkiwi píše:Teória je síce pekná, ale prax je iná.
https://cs.wikipedia.org/wiki/RC_článek
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Lokalita: SO, SK
Bydliště: SO, SK

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od rottenkiwi »

No ale to už nebude reálne meranie, ale meranie po úprave RC článkom, to už bude
časovo úplne mimo realitu.
Keď chcem odstrániť rušenie, tak možem použiť aj soft, ale sme zase tam kde sme
boli, že filtrujeme, ale nevieme presne čo, či už u HW alebo SW filtra.

Niekedy práve krátky peak, ktorý odfiltrujem, može svedčiť o poruche článku.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od mypower.cz »

No .. nejde o filtrovani ruseni. Jde o posun analogoveho signalu, klidne i vcetne ruseni napetove dolu. Filtrovani pripadneho ruseni je jine tema. Me jde vylozene o napetovy posun a to konstantne. Tedy nikoliv odporovym delicem, kde funkce zmeny napeti je jina nez u posunu napeti.

Tohle: https://hk.saowen.com/a/baab1f7038e03b4 ... 4397c6546a ale s jinym vstupnim rozsahem. Treba 32V-20V -> 5-0V
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Lokalita: SO, SK
Bydliště: SO, SK

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od rottenkiwi »

Tak som to robil niekedy, keď som potreboval merať AC napatie a prúd cez Arduino.
https://learn.openenergymonitor.org/ele ... er-adapter

Alebo niekto poradí, ako to robiť cez tento kalkulator:
https://www.neatcircuits.com/l-shift.htm
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od kodl69 »

jako šikovný pionýr si jistě dokážeš spočítat hodnoty odporů do děliče :)
Varianta se zenerkou má zásadní chybu, a to závislost napětí na zenerově diodě na protékaném proudu a na teplotě.
Nejjednodušší je použít ADC s diferenciálním vstupem, kde na + vstup je napětí z děliče a na - vstup napěťová reference - ne odporovej dělič z napájecího napětí, ale aspoň TL431...
U zapojení s OZ je potřeba řešit parametry OZ, tj vstupní napěťovou nesymetrii, drift, vstupní proud... ale pokud je to k arduinu, tak OPA333 je až zbytečně dobrá volba, a funguje to s 5V napájením.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od mypower.cz »

"vstupní napěťovou nesymetrii, drift" .. to jsou pro me cizi slovicka se priznam, nekdy dostuduji. Pokud se jedna o proud, tak se bavime o signalu. Ne o silovych vecech. Signalu takovem, ze pokud to zatizime vetsim proudem, respektive snazime se ze signalu odebirat proud, okamzite padne napeti a merime hovadiny. Tzn soustredime se na napeti, proud je minimalni tak jak nejmin to jde. Jen merime.

Nema nekdo link na nejaky obvod co by to napeti proste shiftnul (nikoliv vydelil) dolu?
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Lokalita: SO, SK
Bydliště: SO, SK

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od rottenkiwi »

A nebude jednoduchšie objednať toto ?
https://www.aliexpress.com/premium/ADS1 ... =y&catId=0
32 V / 65536 = 0.488 mV.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od kodl69 »

v ideálním světě stačí do série s měřeným napětím zapojit zdroj 20V. Potom to bude tak jak požaduješ, akorát je potřeba ošetřit záporný napětí na vstupu arduina, aspoň diodou. "nějak" bude fungovat i zapojení se zenerovou diodou, ale nelinearita a teplotní závislost ti ve výsledku zkazí radost z ezvýšení rozlišení podstatně zhoršenou liearitou ADC. Nedávno jsem dělal "vytěžovač" na 24V systém s olovem, a kvůli složitosti jsem se na level shift vykašlal, i tak je rozlišení 30mV a díky 1.) RC filtru 2.) digitálnímu filtru (už jsem tu stupiditu několikrát popisoval) je měření poměrně přesný, naměřená hodnota napětí se sice trochu "táhne", ale to je v daným případě dobře, aspoň kdejaká špička odběru z měniče neshodí tu zátěž na vytěžovači (je to čerpadlo, tak aby pořád nezapínalo a nevypínalo).
Pokud chceš měřit přesněj, tak si pořiď raděj externí ADC s diferenciálním vstupem, tam dosáhneš úplně jinýho rozlišení a za pár korun na aliexpresu najdeš ADS1115, MCP3421 a k tomu hotový arduino knihovny...
ADC tak jak je na arduinu, s referencií branou z napájecího napětí, je spíš výuková záležitost, než na nějaký přesný měření. Pokles napájecího napětí o 0.1V způsobí chybu 2 procenta z měřené hodnoty, což je víc než 4 bity z rozlišení ADC!!! Pokud chceš něco měřit, je potřeba o tu měřenou hodnotu nepřijít hned na začátku, dost je toho tady: http://petr-kubac.blog.cz/rubrika/vidlakovo-elektro/9 svýho času jsem to dost sjížděl, ale borec jaksi přešel na politiku a filozofování...
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
střídač_N
Příspěvky: 698
Registrován: sob říj 21, 2017 2:22 pm

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od střídač_N »

Jak vidno, snaha po "posunu" napětí u každého v nějakém údobí ožije. I já jej měl a pokoušel jsem se o posun pomocí TL431. Pokud proud "děličem" byl dost větší než proud TL431 byly, výsledky jakš takš. V každém případě jsem si jen ověřil, že je to blbost a "posuvovou" myšlenku opustil.

Ve své podstatě jsou jen dvě možnosti jak "posun" vyřešit seriozně. Reference o velikosti "posunu" následovaná diferenciálním, lépe přístrojovým, zesilovačem.
Odporové děliče.

Obojí je na ........ tedy problémy, tudíž vše vždy vyřeší větší rozlišení ADC převodníku. 10bit je na hranici použitelnosti, skoro se mi chce napsat, kdekoli.
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od kodl69 »

S poslední větou zásadně nesouhlasím, pokud se věnuje trochu péče refernčnímu napětí a analogovému zpracování signálu podle zásad pro správný návrh obvodů, tak je naopak 10 bit rozlišení dostatečný, a pokud se podaří udržet dlouhodobá stabilita měření, tak je naopak 10 bit na ledacos až moc. Ale souhlasím s tím, že ADS1115 je jinej level ADC za pár korun. Ale podobný chyby jako ADC v AVR procesorech to má, pokud se používá přepínání gainu a vstupů, které jedou na vysoké impedanci, je dobrý první naměřenou hodnotu zahodit, protože je ovlivněná nabíjením kapacit v ADC. Teď zrovna nemůžu najít ten odkaz, ale doporučuju jednoduchej test:
Na A0 pin připojit dělič 10k a 10k, na A1 1k a 10k, A3na gnd , na A4 100k a 1M, A5 na +5V.

A v prográmku mít cyklus, který 10x vyčte a pošle na sériový port hodnotu A0, to stejný A1 až A5. Ještě je zajímavý, co se naměří, pokud to proběhne od A5 po A0.
Schválně, kdo si to zkusí a pošle výsledky. Pro některý to jistě bude dost překvapení.

zajímavý řešení je tohle: https://thecavepearlproject.org/2017/02 ... rsampling/ - přidat nějaký střídavý napětí a díky průměrování měření získat větší rozlišení. A nebo zvlnit referenční napětí a dosáhnout podobnýho efektu. Ale to je pro hračičky, a nebo pro sériovou výrobu, kde cena další součástky zvyšuje cenu výrobku, ale složitější vývoj je v milionu kusů rozpustí snáz...
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od mypower.cz »

kodl69 píše:Ale podobný chyby jako ADC v AVR procesorech to má, pokud se používá přepínání gainu a vstupů, které jedou na vysoké impedanci, je dobrý první naměřenou hodnotu zahodit, protože je ovlivněná nabíjením kapacit v ADC. Teď zrovna nemůžu najít ten odkaz, ale doporučuju jednoduchej test:
... ano ano, na sampleru v micrologu to lze pozorovat taky.
Graficky znazorneny vystup ze sampleru micrologu:

Obrázek

Presne to vyse popsane o zacatku mereni ukazuji na screenshotu vlevo nahore piny A8 a A9. Nicmene sledoval jsem to jen u nezapojenych pinu. Ty ktere byly pripojeny k delici tohle uz nedelaly - viz ty dalsi, A10 a A11.
střídač_N
Příspěvky: 698
Registrován: sob říj 21, 2017 2:22 pm

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od střídač_N »

kodl69 píše:....ADS1115 je jinej level ADC za pár korun. Ale podobný chyby jako ADC v AVR procesorech to máz..
Krom jiných výhod, ADS1115 zmíněnou nectnost nemá. Dovolím si vysvětlit i proč.

ADC ADS1115 převodník, má dva režimy převodu. Vyžádaný a kontinuální. U vyžádaného je to tak jaký ono slovo význam, pošleme dotaz a je proveden převod. U kontinuálního je to opět dle významu slova. Stále a dokola se provádí převod a výsledek se ukládá do dvoubajtového registru. No a onen kontinuální režim má opět možnost provádět převod s parametrem SPS s hodnotou mezi 8 - 860 vzorky za sekundu. Tudíž nastavím li parametr SPS například na 250, bude se konverze dělat po dobu 1/250sec s tím, že se nakonec do registru uloží ona zprůměrovaná hodnota z měření po dobu 1/250 sec. Přirozeně čím delší doba SPS, tím i přesnější výsledek, nebo spíš rozptyl výsledku.

Tudíž to, co děláme v arduinu programem, je zde děláno již při zrodu výsledku.
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od kodl69 »

Tohle dělá jenom na vysoké impedanci, tj 100k a víc, na děliči s odporem 10k proti zemi to je u DC napětí rozdíl o jednotky z naměřené hodnoty. Ale i tak je dobrý prvních pár hodnot zahodit, měření se tím zpřesní (pro DC napětí, u AC a při rychlým přepínání vstupů ADC je jediná pomoc nízká impedance zdroje napětí, tj dělič, kde "spodní" odpor bude pod 10k (empiricky odzkoušeno).
P.S. když se dívám na tu sinusovku na A10, tak u nápisů min a max to asi bude spíš rušení nebo chyba měření, než skutečně taková špička. Pro splnění "kotelníkova teorému" je potřeba na vstup ADC dát dolní propust, jinak výslednej rekonstruovanej signál vůbec nemusí opovídat tomu, co bylo na vstupu a to, co je na grafu poměrně přesně odpovídá poslednímu obrázku z wiki... One je potřeba při vzorkování 50Hz počítat s tím, že nelineární zátěže (usměrňovače, pulsní regulátory) produkují vyšší harmonické v nezanedbatelném množství, pokud má měření k něčemu být, tak musí zvládnout minimálně 3. 5. 7. harmonickou, což je 350Hz, a na to je potřeba perioda vzorkování pod 3ms, raděj ještě polovina tj 1- 1.5ms. Samozřejmě výslednej signál se víc blíží vstupnímu s menší přítomností těch vyšších harmonickejch, ale dnes jsou spínaný zdroje ve všem (v žárovce, nabíječce na mobil...)
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
kodl69
Příspěvky: 7627
Registrován: sob črc 19, 2014 8:56 pm
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od kodl69 »

to střídač: ale podle vnitřního schématu je ta chyba díky kapacitě po přepnutí vstupu taky, sice jsem to netestoval, ale jistě to tak funguje, manuál str 14-16, prostě se přepínají napětí ke kondenzátoru přes odpory...
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
střídač_N
Příspěvky: 698
Registrován: sob říj 21, 2017 2:22 pm

Re: 2.6x přesnější měření než běžně na Arduinu

Příspěvek od střídač_N »

kodl69 píše:..... manuál str 14-16, prostě se přepínají napětí ke kondenzátoru přes odpory...
Ale ano je tam psáno (str.16) že záleží na vstupní impedanci. Jelikož v našem případě bude impedance dosti nízká, časová konstanta RC bude taky nízká. Řešíme baterku s několika mOhm.

"Nezapomeňte zvážit typickou hodnotu vstupní impedance. Pokud zdroj nemá nízkou impedanci,
vstupní impedance ADS111x může ovlivnit přesnost měření."

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek