Hydrostat na DHT22 z opóźnieniem wyłączenia - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Czujniki (https://forum.arduinopolska.pl/dzial-czujniki) +--- Wątek: Hydrostat na DHT22 z opóźnieniem wyłączenia (/watek-hydrostat-na-dht22-z-op%C3%B3%C5%BAnieniem-wy%C5%82%C4%85czenia) |
Hydrostat na DHT22 z opóźnieniem wyłączenia - pinelesss - 06-02-2016 Witam, na początek chciałbym się przywitać, ponieważ jestem nowy na tym forum. Zatem witam serdecznie wszystkich na forum Mam następujący problem, którego nie potrafię rozwiązać. Jestem w trakcie budowania higrostatu, który jest zbudowany na czujniku DHT-22. Wyniki są wyświetlane na TFT 5". W założeniach, urządzenie mierzy wilgotność w łazience i jeśli przekroczy ona 65% ma załączyć przekaźnik. Nie byłoby w tym nic dziwnego gdyby nie fakt, że potrzebuję wyłączyć przekaźnik dopiero przy 60% lub (niby prościej) - po osiągnięciu 65% wilgotności jeszcze działać przez zadany czas. Potrzebna mi ta funkcja ponieważ urządzenie działa w tej chwili następująco: po włączeniu przekaźnika włącza się wentylator, który pracując przez kilka sekund obniża wilgotność i osiągając <65% się wyłącza. Po kilku sekundach znowu narasta wilgotność na czujniku i znowu się włącza przekaźnik... Jest tak 3-5 razy zanim się ustabilizuje. Jeśli udałoby mi się tak zmodernizować kod aby wentylator się włączał po osiągnięciu 65% a wyłączał po 60% wydaje mi się, że problem byłby rozwiązany. Drugą opcją byłoby po osiągnięciu wilgotności <=65% aby wentylator pracował jeszcze przez ustalony czas (np. 20 sek.) A oto mój kod: Kod: // Arduino Higrostat - DHT-22 na bazie RE: Hydrostat na DHT22 z opóźnieniem wyłączenia - wojtekizk - 06-02-2016 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) { Pozdrawiam RE: Hydrostat na DHT22 z opóźnieniem wyłączenia - pinelesss - 07-02-2016 Bardzo dziękuję za pomoc "wojtekizk". O taki efekt mi chodziło. Pozdrawiam serdecznie. |