Arduino jednofázový měřič spotřeby/výroby

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
PavelR
Příspěvky: 3122
Registrován: ned led 29, 2012 3:59 pm
Lokalita: Žabčice
Systémové napětí: 48V
Výkon panelů [Wp]: 29139
Kapacita baterie [kWh]: 12
Chci prodávat energii: ANO
Chci/Mám dotaci: NE

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od PavelR »

co ja vim tak ani na ongridech nejsou zatim pouzivany elmery co by merili po periode ale maji daleko vetsi integracni okno. Jinak by nefungovaly zadny wattroutery,greenbono regulatory a podobny hebla ktery vlastne pouzivaji tvrdost site a v ramci okna elmeru udzuji bilanci dodavka/nakup na nule.

edit: az budou elmery co meri po periode tak zacne byt aktualni velky tema jak regulovat AC vykon plynule s prijatelnyma ztratama idelane bez mech prvku.
kodl69
Příspěvky: 7421
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: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od kodl69 »

pořád vymejšlím, jak rozumně udělat měření SOC a tady tohle je možná řešení, odvody pro elektroměry!
klasickej ADE7755
má vstup na přepínání DP pro AC/DC ! a má výstup pro směr proudu, tj stačí dvěma drátama spojit s auruinem a už jenom přičítat a odečítat pulsy. Vedlejší produkt může být DC wattmetr, DC elektroměr.
Otázka je, jestli má cenu něco vyrábět, nebo koupit nějakej elektroměr, kde už je všechno vevnitř, upravit jeho napájecí zdroj na DC napětí a jenom dopojit to arduino.
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
dracekvo
Příspěvky: 1938
Registrován: čtv zář 13, 2012 4:35 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od dracekvo »

A není už něco hotovýho?
https://www.aliexpress.com/item/JUNTEK- ... 68833.html

Ale manuál se té wifi komunikaci moc nevěnuje.

Třeba toto? Třeba by s tím šlo nějak přes wifi komunikovat.
Mě vyšlo lépe než se trápit s vývojem, stejný čas věnovat práci a vydělat si na SOC monitor od victronu.
kodl69
Příspěvky: 7421
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: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od kodl69 »

Já už ho mám v midnite...
Ten čínskej krám bude mít obvyklej problém, a to, že namě stabilní nulu, čímž se SOC rozchází tak, že je to v praxi nepoužitelný. podobnejch krabiček mám už několik, s tím jsem skončil.Ale spíš mi jde o doplněk BMS, když bude systém využívat víc baterek, aby bylo vidět, kolik je v které. Takže ani ne tak kvůli vlastnímu měření SOC, ale kvůli tomu, aby se třeba při velkejch odběrech zbytečně nevypínaly baterky na podpětí článku. A to se sice dá koupit, ale za nenormální peníze...
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.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

Matess píše:ma takoveto reseni smysl?
distributor vam da stejne elektromer ktery meri kazdou pulvlnu, takze ssrkem sepnutym jedna pulvlna a 99 rozepnutych v jedne vterine sice z 2000W udela prumernou spotrebu 20W, ale elektromer to stejne spocita jako 2 smery, ne ? (2000W po 1/100s a 0W po 99/100s)
Podle teď honem nevímjaké směrnice EU nemá elektroměr distributora měřit každou půlvlnu, ale vyhodnocovat určitý časový interval, který už si nepamatuju, ale bylo to určitě víc než půlvlna.

Stejně jsem to původní řešení tenkrát zavrhl a tím snímacím Arduinem začal řídit přímo triakový regulátor, který sekal půlvlny na sekanou (něco jako regulátor otáček u vysavače, kde plynule řídíš otáčení toho potenciometru Arduinem) a posílal přebytek domu do bojleru. Oficiálně to dělal i autor GreenBonO v nějaké speciální fázové verzi jeho výrobku tuším. Jaká je situace dnes, nevím. Už je to pár let. Ale směrnice EU tuším platí stále.
mpcz
Příspěvky: 84
Registrován: sob kvě 14, 2022 1:27 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od mpcz »

Zdravím, řešení nepovolených přetoků je jak vidno i po letech stále aktuální. Než se pustím do výzkumu, prosím dotaz, zda někdo dotáhl do konce řešení vyvedením informace o přetoku z klasického odpočtového elektroměru, jeho zpracováním na Arduinu a připojením zátěže. Nebo nabíječky baterie, čímž se dá energie navíc smysluplně využít.
Také jsem nikde nenašel info, kolik takový Modrásek, (který má víceméně funkční blokaci přetoků), alias SUN1000/2000W těch přetoků udělá ve skutečnosti. A kolik po realizaci přídavného opatření s připojením přídavné zátěže při přetoku.
Jestli to dobře čtu, tak elektroměr může načíst za jednu 1/4 hodinu průmerně 115W, pak pokuta odvozená nejasným výpočtem.
Také by potěšila informace, který dnešní cenově dostupný elektroměr má možnost bastlením vyvedení výstupu s informací o přetoku. Nejlépe s již citovaným čipem ADE7755(ARS). Díky, mpcz, 22aug2022
glottis
Příspěvky: 2130
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od glottis »

mpcz píše:Zdravím, řešení nepovolených přetoků je jak vidno i po letech stále aktuální. Než se pustím do výzkumu, prosím dotaz, zda někdo dotáhl do konce řešení vyvedením informace o přetoku z klasického odpočtového elektroměru, jeho zpracováním na Arduinu a připojením zátěže. Nebo nabíječky baterie, čímž se dá energie navíc smysluplně využít.
Také jsem nikde nenašel info, kolik takový Modrásek, (který má víceméně funkční blokaci přetoků), alias SUN1000/2000W těch přetoků udělá ve skutečnosti. A kolik po realizaci přídavného opatření s připojením přídavné zátěže při přetoku.
Jestli to dobře čtu, tak elektroměr může načíst za jednu 1/4 hodinu průmerně 115W, pak pokuta odvozená nejasným výpočtem.
Také by potěšila informace, který dnešní cenově dostupný elektroměr má možnost bastlením vyvedení výstupu s informací o přetoku. Nejlépe s již citovaným čipem ADE7755(ARS). Díky, mpcz, 22aug2022
- pretok dela podle profilu zateze a nastaveni. Muze to byt 0-0,5kwh za den co mam vysledovane v normalnimprovozu.
- pridavne opatreni mam resene odpojenim menicu od site. Pokud v myslim 2 minutovem prumeru zjistim pretok vetsi nez 60 wattu, odpojim menic na 10 minut
- pretok merim pomoci shelly em3. Tim si posilam co 2s aktualni prikon domu po mqtt do esp32 (esphome) a pocitam ten klouzavy prumer
- ano, pri prekroceni 115W v prumeru 15 minut nasleduje trest. Vypocet ale je celkem jasny. Nechce se mi to hledat ale bere se vykon mikrozdroje a pri prekroceni nejakych procent tohoto vykonu jsou snad tri velikosti pokuty. Vyplati se mit registrovano co nejvic w mikrozdroj eprotoze pak je vwetsi misto k pretoku za min penez.
- ktery elektromer to umi nevim ale me vyhovuje to shelly em3. Mel jsme ale na stole 1f jednoduchy elektromer a chip v nem mel pin, ktery korespondoval s tim, jestli je odber nebo dodavka. Necetl jsme datasheet do podrobna. Asi pak proste dal pocitam impulzy a jen se bere jiny smer. Bylo by to celkem uchopitelne. Nemel jsem cas to zatim vic zkouset
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

mpcz píše:Zdravím, řešení nepovolených přetoků
Něco se řeší v tématu o přetocích tady na fóru, ale konkrétní řešení tam není. Já jsem nakoupil nějaké modrásky, takže to podle mé staré myšlenky, se kterou jsem zakládal toto vlákno, hodlám zrovna zbastlit. Měření přetoků mám, při dvou modráscích jsou denně mezi 10 a 35 Wh na jedné fázi.

POZOR, zjistil jsem, že nový malý Maneller elměr s displejem už nemá ADE7755, ani tedy netuším, zda ho kdy měl, já kdysi dělal první pokusy s malým Manellerem s mechanickým počítadlem a ten ho měl, tak doufám, že ho má i dnes.

V podstatě asi stačí použít pouze vývod REVP na detekci přetoku, jeho měření hodnoty vyřazením děličky pulzů stejně nebude podle mne asi tak rychlé, aby bylo k něčemu dobré. Okamžitě sepnout SSRkem (asi ideálně v nule, bude mít sice zpoždění o max půlvlnu, ale tak rychle stejně žádný elměr přetoky neměří, dle směrnice EU ani nesmí, ale se spínám v nule přpíadné zátěže vydrží nesrovnatelně déle, kamarádovi po týdnu spínání obyčejným relé nabíječka vybouchla).

Otázkou poslední je typ zátěže. Abychom na řešení přetoků neztratili víc, než je nutné. Obecně má přetok charakter pulzu, který se s časem exponenciálně snižuje až na nulu. Tedy budou vhodné všechny zátěže, u kterých nastává po zapnutí špička. Například tedy všechny spínané zdroje, čím prasáčtější (že nemají omezení nabíjecího proudu elektrolytů), tím lépe. Taky z klasických zátěží by měla dobře odpovídat například obyčejná žárovka, která má ve studeném stavu vysoký odběr a po zahřátí se sníží. Očividně asi nejekonomičtější bude spínat například nabíječku solárních baterií, kde žádnou energii v podstatě zbytečně neztratíme, pouze na účinnosti nabíječky. Popřípadě spirálu bojleru. Je ale otázkou, zda zapínací pulz, který bývá u spínaných zdrojů někdy značný, bude stačit na anulování přetoku. U bojleru určitě, u slabších zátěží musejí mít dostatečný zapínací pulz.

Moje myšlenka je taková, že budu spínat zátěž přesně podle signálu REVP z ADE7755. Nic víc, nic míň. Jednoduché jak facka a účinné. U některých SSR s malým spínacím proudem není ani třeba cokoli řešit Arduinem, lze připojit přímo SSR na signál REVP elměru (ADE), popřípadě s tranzistorovým mezistupněm, pokud by proud nestačil. Pozor, pak celý obvod není izolován od sítě, tedy člověk musí dávat bacha, ale izolace od sítě ani při použití SSR není nutná. U použití Arduina už musíte dát optočleny, abyste to odizolovali, jinak se při připojování do sítě nebo přes USB můžete škaredě ulovit nebo něco zničit.
glottis
Příspěvky: 2130
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od glottis »

pretok muze byt klidne i o rad vetsi. Treba indukcni deska nebo trouba, jak spina a rozpina tak pretoku muze nasekat hodne. Kdyz se blbe trefi frekvence spinani do pomale regulacni smycky modraska je to vetsi.

Presne co popisujes jsme chtel zkusit. Zajimavejsi by bylo jeste reagovat na velikost pretoku a fazove ridit treba topnou spiralu do bojleru.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

glottis píše:pretok muze byt klidne i o rad vetsi. Treba indukcni deska nebo trouba, jak spina a rozpina tak pretoku muze nasekat hodne. Kdyz se blbe trefi frekvence spinani do pomale regulacni smycky modraska je to vetsi.

Presne co popisujes jsme chtel zkusit. Zajimavejsi by bylo jeste reagovat na velikost pretoku a fazove ridit treba topnou spiralu do bojleru.
To by šlo na výstupu CF z ADE7755 je poměrně rychlý impulzní výstup (už si nepamatuju, ale myslím cca stovky Hertz při kW), ale nejsem si jist, jestli by se podařilo tak rychle uřídit nějaký triak. Ta rychlost reakce by musela být blesková, tedy žádná zpětnovazební regulace, ale asi přímo tabulka hodnot střídy (tedy PWM) triaku ku periode CF impulzů, pak by to rychlostně nějakou šanci mělo. GreenBonO má tohle v podstatě už ve fázové verzi udělané (ale asi zpětnovazebně, tedy to bude pomalé), tam si nejsem jist, zda to má takovou rychlost, aby to na ten jehlový peak nějak rychle zareagovalo.

Otázkou je, jestli už nebude jednodušší porochat se v modráskovi, aby reagoval rychleji a přetoky nedělal :)
glottis
Příspěvky: 2130
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od glottis »

solárník píše:
glottis píše:pretok muze byt klidne i o rad vetsi. Treba indukcni deska nebo trouba, jak spina a rozpina tak pretoku muze nasekat hodne. Kdyz se blbe trefi frekvence spinani do pomale regulacni smycky modraska je to vetsi.

Presne co popisujes jsme chtel zkusit. Zajimavejsi by bylo jeste reagovat na velikost pretoku a fazove ridit treba topnou spiralu do bojleru.
To by šlo na výstupu CF z ADE7755 je poměrně rychlý impulzní výstup (už si nepamatuju, ale myslím cca stovky Hertz při kW), ale nejsem si jist, jestli by se podařilo tak rychle uřídit nějaký triak. Ta rychlost reakce by musela být blesková, tedy žádná zpětnovazební regulace, ale asi přímo tabulka hodnot střídy (tedy PWM) triaku ku periode CF impulzů, pak by to rychlostně nějakou šanci mělo. GreenBonO má tohle v podstatě už ve fázové verzi udělané (ale asi zpětnovazebně, tedy to bude pomalé), tam si nejsem jist, zda to má takovou rychlost, aby to na ten jehlový peak nějak rychle zareagovalo.

Otázkou je, jestli už nebude jednodušší porochat se v modráskovi, aby reagoval rychleji a přetoky nedělal :)
Pokud znas prikon zateze (u cinneho jo), presne bych napocital tabulku delky sepnuti a treba nejaky dobeh.

Jestli se ti povede neco v modraskovi porochnat nevim :) Jsou o nem vasnive diskuze vse mozne, vsichni neco zkousi a nikdo nic neudelal. Dobre pokusy byli, kdyz mel jeste externi limiter. To by totiz byla parada a skoro by to slo jen pripojit na ten pin co signalizuje pretok :) Bohuzel to prestali delat.

Pak je tam konektor na nejake teplotni cidlo ale to zase vypne limiter. A pak jsme jeste zkousel zasahovat do proudoveho cidla. Jedine co slo, ze odpojeni cidla stahlo vykon menice na 0. Jednou se to posralo, preteklo mi v pulhodine asi 0,6kwh a stalo me to asi 1200kc :) Mel jsem jeste v planu zkratovani cidla a reverzaci polarity ale od te doby na pokusy kaslu a jen kdyz detekuju problem, menice proste odpojim. Mam to aspon i jako dalkove zastaveni, kdyz klesne SOC na bateriich, kdyz je pretok a kdyz nejakej cas nedostanu info o prikonu domu. Pak je poplach a vypnuti :)

Takze si klidne pohraj :) Ale doporucuju to delat na pripojce, kde to nemas hlasene ofiko :D jinak te to muze bolet.
mpcz
Příspěvky: 84
Registrován: sob kvě 14, 2022 1:27 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od mpcz »

Zdravím. K těm přetokům (Modrásek SUN1000/2000. Dlouhodobým zkoušením jsem nalezl "indikátor přetoku" s online = nepostřehnutelnou délkou reakce. Je to kupodivu nejlevnější elektroměr na trhu Maneler 9920M. Bohužel je to starší věc, takže není jednoduché ho ještě koupit v krámu. O to jednodušší je vytažení indikace přetoku. Má totiž LED blikačku na S0 a také LED přetoku (bez vyvedeného výstupu). Takže stačí svorku SO přepojit na LED přetoku a je to. Elektroměr dál měří tak, jak před tím. Navíc ta destička je maličká, lehce vyjmutelná a zapojení naprosto čitelné.
Ohledně těch přetoků Modráska: asi by to chtělo nějaký kvalifikované výzkum s konkrétními výsledky. Protože informace zde jsou velmi všeobecné a mnohdy jen dohady. Navíc hodnoty přetoků od různých uživatelů Modráska se řádově liší. Bylo by asi dobré vědět, kolik kusů přetoků třeba za 1 den vznikne a jaká energie za jeden přetok vznikne. Je sice pravda, že pokud celkově za 1 den někomu vznikne sumárně třeba xxxWh, je jasné, že se do limitu vleze i v rámci jedné 1/4hodiny. Toto ujištění ale není dlouhodobě bezpečné. Výzkum pokračuje ... mpcz, 27aug2022
mpcz
Příspěvky: 84
Registrován: sob kvě 14, 2022 1:27 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od mpcz »

Tak máme další posun. Našel jsem elektroměr, který splňuje vše, co potřebujeme k analýze stavu a případným obranným opatřením proti nežádoucím přetokům, přičemž je schopnost měřit odběr i dodávku zachována. Nemusí se nic HW upravovat.
Na obyč. elektroměr 1U s LCD jsem se napojil opticky oddělenou 485-kou, což zas není takový problém a tím mám k dispozici online dodávku = přetok vč. hodnoty. Takže dodávka = přetok > 0 spíná alarm = opatření proti přetoku. To ještě nevím, jaké bude. Ale snad už to tu někdo řešil, dám se poučit o spolehlivé cestě.
Taká lze součtově vyčíst dodávku v rámci 1/4 hodiny, což je doba, za kterou to počítá ERU / ČEZ / EGD a stanovuje sankce. Takže pokud už mám za 1/4 hodinu načteno nebezpečně moc, raději to celé odpojím.
Převod 485 na LAN a do mobilu s Androidem již mám vyřešeno a v provozu, takže to zas celé takový problém není. Jen ten výzkum něco času zabere. A taky se hromadí staré nepotřebné krámy ze "slepých uliček".
Z registrů elektroměru lze taky vyčíst a součtově načítat celkovou dodávku a odběr za stanovenou dobu, takže i grafy a analýzy.
Celé je to postavené na Arduinu UNO za pár korun + Moxa převodník dělá provoz do Android mobilu. mpcz, 5sep2022
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

Ještě jsem to zkoumal, pár postřehů:

- všechny malé jednofázové elměry S MECHANICKYM POCITADLEM maji ADE7755, včetně cejchovaných. Digitalni s displejem nemají, maji jiný obvod!

- v současnosti (10/2022) vyhovuje velmi levně prodávaný Huttermann HT-1PM je pro tohle ideální, stojí pár stovek a má dvojitou LEDku, tedy už připojený výstup REVP! Tedy se to nemusí riskantně pájet na vývody ADE7755! Stačí pouze vypájet IO děličky a pár součástek okolo optočlenu, přidat další optočlen a zapojit podle návodu na začátku tohoto vlákna k Arduinu.

- někdo se tu ptal na časování výstupu REVP - zahledal jsem v manuálu ADE7755 a tam se píše, že REVP (=znaménko toku energie) se nemění nezávisle, ale POUZE SOUČASNĚ s pulzem na CF. Tedy spolu s pulzem elektroměru. To je důležité zjednodušení pro programování - nemusíte řešit dvě přerušení, ale nastavíte pouze jedno na výstup pulzů CF a po spuštění přerušovací rutiny se pouze dotážete na stav vstupu REVP.

- zkoumal jsem přetoky modráska takto upraveným elektroměrem s připojením k Arduinu a délka přetoků z modráska nepřesahuje v naprosté většině 5 sekund, do té doby zpětná vazba modráska dokázala v podstatě vždy přetok zastavit sama. Velikost přetoků dělá většinou 1 až 2 Watthodiny denně (u poslední verze modrásků koupené letos), tedy ani za rok vám elektroměr na domě nezaznamená ani kiloWatthodinu přetoku P a distributor nebude vyvádět. Ale pozor, přetok se dramaticky zvyšuje při vykrývání spotřeby přístrojů, které rychle vypínají a zapínají zátěž. Příklad může být elektrická trouba, která reguluje teplotu. Tam je při dosažení teploty přepnuto na PWM řízení topidla, což znamená periodické spínání a vypínání. Pak jsem naměřil za den přetok modráska až 10Wh do sítě, tedy by vám to za rok mohlo natočit 3kWh přetoku P na elektroměru a průser by byl na spadnutí, pokud nemáte přihlášený mikrozdroj.

- při programování Arduina můžete postupovat většionu dvěma způsoby - buď vyhodnocovat čas mezi dvěma pulzy (méně přesné), nebo zpracovávat celé například minuty (počet pulzů děleno časem). Pro obě verze potřebujete pracovat s funkcí micros(), která však každých cca 70 minut přeteče (=čas se vrátí na nulu a jede zase od začátku)! Musíte tedy ošetřit dobře tuto situaci, jinak vám to bude každých 70 minut hlásit nesmyslné údaje, pokud se vám to zcela nezasekne.
kodl69
Příspěvky: 7421
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: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od kodl69 »

Jenom detail: pro micros() , nestačí milis() ? když se počítají pulsy za celou minutu, tak není důvod. A to přetečení je nepříjemný i u milis(), ale někde jsem na to našel knihovnu, která to u časovačů řeší.
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.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

kodl69 píše:Jenom detail: pro micros() , nestačí milis() ? když se počítají pulsy za celou minutu, tak není důvod. A to přetečení je nepříjemný i u milis(), ale někde jsem na to našel knihovnu, která to u časovačů řeší.
Celou minutu možná stačí. Ono je to stejně jedno, jak píšete, u obou s tím musíte počítat.
Pokud ale někdo dělá i samostatné pulzy (pokud chce třeba vidět i minimum a maximum za tu minutu), pak už by měl použít micros, protože jak koukám do dat při 1,74 kW bylo mezi pulzy jen okolo 4300 mikrosekund. Tedy při milis to bude mít chybu 25 % a to nemluvíme o vyšších výkonech.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

Jinak to řešení přetečení

- hlavně zachovávat stále všechny zůčastněné proměnné unsigned long (jako jsou millis a micros), protože klasický long přetéká už na poloviční hodnotě.

- při porovnávání času minulého a současného neprovádět žádné operace, pouze porovnávat, zda je minulý<současný, jinak to taky přeteče nechtěně, mimochodem - rozdíl dvou unsigned long bude vždy kladný :) tedy tudy cesta nevede, pokud to někdo dá do podmínky třeba jako if (současný-minulý>0) {pak nepřeteklo} tedy nebude fungovat.

- když si představíte, že by vám ta proměnná přetekla při třeba stovce, určitě vám dojde, jak to správně pro případ přetečení naprogramovat a jak spočítat výsledek správně, i když to přeteklo ;) Pak už si stačí najít, při kolika přetéká unsigned long a napsat to zcela stejně.
glottis
Příspěvky: 2130
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od glottis »

pro ostatni ... spravna podminka pro reseni preteceni by mela vypadat takhle

Kód: Vybrat vše

if(millis() - time_now > period){
        time_now = millis();
        Serial.println("Hello");
    }
tedy pri odcitani unsigned log jak je v tom ifu je vzdy spravne rozdil ikdy zto pretece.

vysvetlene a ukazane je to treba tu: https://www.norwegiancreations.com/2018 ... nd-micros/

Pretoky co jsme nameril s shelly 3em jsou na trech modrascich dohromady asi 100wh za den kdyz nejsme doma a je spotreba stala. Kdyz jsme doma je to horsi. Treba 300-400wh denne. Vetsina je pak na fazi, kde je treba ta zminena trouba nebo indukce.
solárník
Příspěvky: 1586
Registrován: pát bře 15, 2013 7:53 pm

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od solárník »

glottis píše:pro ostatni ... spravna podminka pro reseni preteceni by mela vypadat takhle

Kód: Vybrat vše

if(millis() - time_now > period){
        time_now = millis();
        Serial.println("Hello");
    }
Tohle se dá použít, jestli to dobře chápu, když víte, jak dlouho přibližně bude ta operace trvat (hodnota period), když třeba stopujete minutu. U měření délky pulzů nevíte nic, tedy je to k ničemu.
glottis
Příspěvky: 2130
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Arduino jednofázový měřič spotřeby/výroby

Příspěvek od glottis »

neni pravda. kdyz si ulozim cas pri impulzu tak udelam jen millis() - posledni_cas_impulzu tak pri pristim impulzu mi tohle rekne cas mezi impulzy

tedy v pseudokodu kdy v time j epak trvani toho casu mezi pulzy

Kód: Vybrat vše


unsigned long last = 0;
unsigned int time = 0;

ISR() {
unsigned long now = millis();
time  = now  - last;
last= millis();
}

to zkus, melo by to tak byt

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