Skocz do zawartości

Pomocna odpowiedź

(edytowany)
32 minuty temu, Marcin1922 napisał:

@ethanak  I teraz sumujesz tylko moc a nie ma obliczanie w czasie rzeczywistym ile kWh zostało pobranych i aktualizowanie jak to się dzieję na liczniku energii elektrycznej 

Co sekunde liczysz ile watt pobrales i dodajesz do starego wyniku...czekasz na 3600 pomiarow i masz ile energii zezarles w ciagu godziny..

Wroc!! Pomylka...wynik sekundowy dzielisz przez 3600 i dopiero dodajesz do starego i po godzinie masz zuzycie

Edytowano przez farmaceuta
13 minut temu, Marcin1922 napisał:

@farmaceuta No rozumiem ale program nie jest mi w stanie dokładnie co sekundę obliczyć bo pętla programu trwa dłużej jak 1 s 

To licz co 2 sekundy, albo co 5, albo co 127 sekund...😉 Jak Ci wygodnie😉 tyle ze im rzadzej liczysz tym wiekszy bedzie blad...no i oczywiscie uwzglednij zmiane przy dzieleniu...jesli chcesz liczyc co 10 sekund to 3600/10 = 360 wiec dzielisz  wynik przez 360 bo tyle wynikow otrzymasz w ciagu godziny...

23 minuty temu, Marcin1922 napisał:

program nie jest mi w stanie dokładnie co sekundę obliczyć bo pętla programu trwa dłużej jak 1 s 

No to liczysz n razy w ciągu godziny

 

@farmaceuta  @ethanak a takie coś np. ? Było by poprawnie co minutę obliczanie ale waty są sumowane i wyciągana średnia w celu zwiększenia dokładności ?

Bo tak to nie wiem  jak poprawnie zapisać kod na podstawie tego co sugerujecie.

przsejscia = przsejscia +1;
Paa= Pa+Paa;

if ( h+1 == now.minute){
Kwhaa = Paa/przsejscia/60
przsejscia = 0;
Paa = 0;
}
h = now.minute;

 

if ( h+1 == now.minute){ 

Rozumiem, że nie dopuszczasz sytuacji kiedy coś się stanie, ustrojstwo się zablokuje i now.minute będzie wynosić np. h+2?

if (h != now.minute) {

Poza tym reszta wygląda dobrze, tylko jednostki... w czym to wreszcie liczysz? W watach Ci wystarczy?

  • Lubię! 1
(edytowany)

@ethanak  Ma być KWh  czyli zamiast 60 dam 6000 bo jak bym zrobił to np co 5s ale nie wiem jak to zapisać by nie było problemów. a co w przypadku gdy minuty będą przeskakiwać z 59 na 00 w taki przypadku przez 2 minut nie dokona obliczania. A jak by to było oparte na sekundach ten błąd zdarzał  by się o wile częściej  

Edytowano przez Marcin1922
1 minutę temu, Marcin1922 napisał:

co w przypadku gdy minuty będą przeskakiwać z 59 na 00

W Twoim przypadku wszystko zdechnie, w tym co proponowałem będzie działać normalnie (w końcu 59 != 0)

 

  • Lubię! 1

Chciałbym żeby to możliwie jak najczęściej obliczało, żeby dane aktualizowały możliwie w czasie rzeczywistym z kilku sekundowymi opóźnieniami a nie minutowymi

46 minut temu, Marcin1922 napisał:

@ethanak  Ma być KWh  czyli zamiast 60 dam 6000 bo jak bym zrobił to np co 5s ale nie wiem jak to zapisać by nie było problemów.

No to zostaje jeszcze opcja uzycia biblioteki "Timerone" czy cos takiego? I w przerwaniu dokladnie co 5 sekund obliczysz...ale to ciut mniej dokladne niz rtc...no albo tak kod przerobic zeby chociaz 10 razy na sekunde robil obieg w loop()

Ale poco tak kombinować...robisz pomiary co jakiś czas a w każdej minucie dzielisz przrz ilość pomiarów.

Panowie, podstawy statystyki, tu nie miejsce na ich przypominanie...

(edytowany)
11 minut temu, ethanak napisał:

Ale poco tak kombinować...robisz pomiary co jakiś czas a w każdej minucie dzielisz przrz ilość pomiarów.

Ale wtedy mi wychodzi srednia z minuty...to tez zalezy jak bardzo i jak dynamicznie zmienia sie obciazenie..

W sumie tak...na jedno wychodzi..i tak o dokladnosci decyduje czestotliwosc pomiaru

Edytowano przez farmaceuta

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...