• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Hydrostat na DHT22 z opóźnieniem wyłączenia
#2
Witam
Masz tu klasyczny przykład histerezy. Przy przekaźnikach może to nawet doprowadzić do migotania i sklejenia zestyków - czyli bardzo niebezpieczne zjawisko. 
Jak sobie z tym poradzić? 
Przez wprowadzenia do klasycznej teorii sterowania histerezy właśnie :-)
Czyli dodaj do swojego programu zmienną globalną:
volatile int histereza=0;
a potem w kodzie:
Kod:
if(h > (maxHum+histereza) || t > maxTemp) {
   histereza=-5;
   digitalWrite(fan, HIGH);
    myGLCD.print("Wentylator: ON ", 20, 400);
 }
 else {
   histereza=0;
   digitalWrite(fan, LOW);
    myGLCD.print("Wentylator: OFF", 20, 400);
 }
  To volatile jest po to aby procesor nie upraszczał sobie zadania, i zmieniał wartość histerezy na bieżąco, bez uproszczeń (tzn. dopiero po wyjściu z if-a na przykład). Można tego nie robić, ale lepiej warto :-)
Pozdrawiam
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Hydrostat na DHT22 z opóźnieniem wyłączenia - przez wojtekizk - 06-02-2016, 22:59

Skocz do:


Przeglądający: 1 gości