Gennnemsnit temp. (Læst 2196x)

Offline dani8303

  • Spændingsdeler
  • ****
  • Indlæg: 63
  • Antal brugbare Indlæg: 9
  • ESP8266, Linux server, PHP, JS, så spiller det.
    • Vis profil
    • Egen side til styring, energi mm. tag et kig :-)
Sv: Gennnemsnit temp.
« Svar #15 Dato: September 25, 2022, 12:17:33 »
Haløj Dan

Den kigger på om den nye gennemsnitstemperatur variere for meget fra den tidligere målte, altså overskrider hysteresen. Prøv at udskrive "current_temp" samtidig med. Det er nemlig den relæerne bliver sat efter. Så tror det begynder at give mening 😉.

Hvis "current_temp" er blevet indlæst til 7,65, så skal avg beregnes til minimum 7,86 før at der sker en opdatering. For nedadgående er det 7,44 eller mere den skal variere. Det skyldes netop at hysteresen (temp_hys) er sat til 0,2.

Programmering er rigtigt godt til at sætte de små grå på arbejde😁.

 

Offline DanFr

  • U=I*R
  • ***
  • Indlæg: 45
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: Gennnemsnit temp.
« Svar #16 Dato: September 25, 2022, 14:42:34 »
Hej igen..

Ahhh ja det giver menig,  den er da meget rar at have med på serial monitoren også, så kan jeg se hvad der sker. Også fordi det bliver en styring uden display eller lign, så det er den bærebar på hvis jeg skal se eller justere, men skulle i princippet også passe sig selv når først det køre.
Så nu vil jeg finpudse det lidt og få lavet gode noter mens jeg kan huske det.

Måske jeg lige skylder en forklaring på hvad det skal bruges til, og der er nok noget som siger dig et eller andet, fordi vi skrev sammen sidste år med en analog styring af mit fremløb i forhold til ude temp, men jeg er bare ikke dygtig nok, så fandt på noget andet.
Så denne lille styring her, skal forskyde mit 0-10v signal til min shunt, hvert relæ ligger en modstand værdig parallel over 0-10 volt og på den måde snyder jeg den til at vide hvor den er, troede ikke det virkede, men virker faktisk okay.
Der bliver en udgang som ændre setpunktet på brænderen, lidt et sommer og vinter setpunkt, så jeg ikke har så høj temp før shunten når jeg ikke har brug for det i centeralvarmen, 
Og der bliver et relæ som slukker for mit cirkulations pumpe når ude temp, bliver høj nok.

Og det leder mig faktisk til et andet spørgsmål som jeg har glemt alt om.. Hvor store tider kan man arbejde med i Arduino'en.
Fordi jeg kunne godt tænke mig at lave så pumpen bliver masseret jævnligt om sommeren når der ikke er brug for den. 10-15min hver 6 time feks Kan det laves uden ekstra clock mondul eller lign.. Gerne lidt hjælp, har ingen ide om hvor jeg skal starte

 

Offline dani8303

  • Spændingsdeler
  • ****
  • Indlæg: 63
  • Antal brugbare Indlæg: 9
  • ESP8266, Linux server, PHP, JS, så spiller det.
    • Vis profil
    • Egen side til styring, energi mm. tag et kig :-)
Sv: Gennnemsnit temp.
« Svar #17 Dato: September 25, 2022, 18:59:50 »
Hej Dan

Så det var hvad det var til.

Angående tider, så kan arduino sagtens håndtere det du efterspørger. Du skal bruge millis(), hvor denne først får overflow efter cirka 50 dage. Her er et eksempel hvor der skrives en linje hver 6 time:
unsigned long lastime = 0;
  unsigned long interval = 1000 * 60 * 60 * 6; //s * min * time * antal timer
  void loop(void){
    if((millis()-lasttime) > interval){
      Serial.println("Der er nu gået 6 timer siden sidst");
      lastime = millis();
    }



  }

 

Offline DanFr

  • U=I*R
  • ***
  • Indlæg: 45
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: Gennnemsnit temp.
« Svar #18 Dato: September 25, 2022, 19:18:47 »
Hej..

Yes det er hvad det er til..

Hvad mener du med "overflow efter 50 dage"?

Jeg har siddet lidt i min tømmermænds magt og google'et lidt og var godt kommet frem til at det var noget med millis() der skulle bruges.


 

Offline DanFr

  • U=I*R
  • ***
  • Indlæg: 45
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: Gennnemsnit temp.
« Svar #19 Dato: September 25, 2022, 19:34:51 »
Hej igen igen...
Tror faktisk ikke jeg vil lave den timer i koden, men bruge en ekstern cycle timer i stedet. For når først fyrings sæsonen er helt stoppet, så kan jeg tillade mig at slukke for styringen, shunt osv. Pumpen skal cycle konstant så længe der er tændt for hovedafbryderen til fyret 

 

Offline Icecap

  • Jordet Basic
  • **
  • Indlæg: 177
  • Antal brugbare Indlæg: 19
    • Vis profil
Sv: Gennnemsnit temp.
« Svar #20 Dato: September 26, 2022, 16:54:24 »
Arduino har en interrupt som tæller milisekunder. Den er på 32 bit og efter49 dage, 17 timer og 2,788 sekunder ruller den rundt fra 4.294.967.295 til 0.

Hvis man så bruger funktionen "når ms() >= X" og X regnes ud ved "X = ms() + 1000" bliver det prut når man kommer indenfor det sidste sekund.

X skal jo være en 32 bit også og det ovenstående kan betyde at de sidste 999 ms af perioden udløser 999 gange hvor det er rigtigt når der kun skulle være 1.

Den rette <skudsikre> metode er at bruge en timer-interrupt og lade den tælle en variabel ned. Når variablen når nul genlades variablen med værdien for tiden og det som skal ske udføres.

Det kan være en hurtig og enkel funktion og den kan så køres direkte fra interruptrutinen.

Er det en mere kompliceret funktion sætter interruptrutinen et flag og main-loop kan have en "hvis flag er sat: nulstil flag og gør kompliceret rutine".

 

Offline dani8303

  • Spændingsdeler
  • ****
  • Indlæg: 63
  • Antal brugbare Indlæg: 9
  • ESP8266, Linux server, PHP, JS, så spiller det.
    • Vis profil
    • Egen side til styring, energi mm. tag et kig :-)
Sv: Gennnemsnit temp.
« Svar #21 Dato: September 26, 2022, 17:29:24 »
Lige en lille sidenote Icecap, så kan det øverste kode du foreslår godt give problemer. Du risikere nemlig at det ikke virker efter de cirka 50 dage. Det er lidt langhåret at forklare, men hvad nu hvis X beregnes til 4.294.967.295. Dermed findes der ikke noget tal større, hvormed koden aldrig vil blive aktiveret igen.

Prøv at læse denne artikel: https://www.norwegiancreations.com/2018/10/arduino-tutorial-avoiding-the-overflow-issue-when-using-millis-and-micros/

Det har jeg nemlig haft fundet ud af på den trælse måde :o.

Og ja der er mange måder at lave det på  ;). Det kode til tidshåndtering jeg sendte tidligere kører dog ganske fortræffeligt. Har det til at kører på flere ESP8266, hvor flere af disse har kørt adskillige måneder uden problemer :D.

 

Offline Icecap

  • Jordet Basic
  • **
  • Indlæg: 177
  • Antal brugbare Indlæg: 19
    • Vis profil
Sv: Gennnemsnit temp.
« Svar #22 Dato: September 26, 2022, 22:59:39 »
Helt enig. Arduino er i min mening færdigtygget børnemad på dåse, ingen smag - men enkel at bruge.

Opbygningen af funktionerne er gjort sådan at det er let at komme i gang men meget svært at faktisk tage sig ud af skidtet.

Men jeg har så også levet af at udvikle løsninger med mikroprocessorer i omkring 40 år så jeg har nok en anden vinkel ind.