logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zaprogramować sterowanie oświetleniem? RPI i Domoticz + Arduino.

Gwidon777 25 Maj 2019 16:48 642 2
  • #1 17980116
    Gwidon777
    Poziom 10  
    Posty: 35
    Ocena: 1
    Witam.
    Właśnie pracuję nad sterownikiem do domu. Ogólnie sterownik będzie opierał się na RPI z Domoticzem + Arduino ale mój problem dotyczy właśnie Arduino. Nie mogę sobie proadzić z zaprogramowaniem sterowania oświetleniem. Chodzi o to, że światło ma być załączane sygnałem z czujki PIR i dodatkowo włącznikiem dzwonkowym w takim układzie, że jeśli włączymy włącznikiem to czujka nam tego nie wyłączy a jeśli wyłączymy włącznikiem to czujka będzie załączała oświetlenie. To wszystko działa jak trzeba tylko chciałbym dodać opóźnienie wyłączenia z czujki PIR. Próbowałem opóźnień millis na wszystkie sposoby, próbowałem z biblioteką Timers ale nic mi nie działa.
    Będę wdzięczny za pomoc.
    Pozdrawiam.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #2 17980897
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Strasznie kombinujesz. Zobacz przykład z blinkWithoutDelay, wywal led, wrzuć tu zmienna do odmierzania czasu, jeśli jest większa od zera to ją zmniejszaj, odliczanie gotowe. Dalej w kodzie gdy PIR wykryje ruch ustawiaj zmienną na czas działania, zawsze dopóki PIR będzie wykrywał ruch ma ustawiać tą zmienną na czas startowy - resetuje ją.
    Potem zajmij się przyciskiem, tu użyj faktycznie debounce, przypisz zmienną do przycisku, gdy zostanie wciśnięty zmieniaj stan zmiennej na przeciwny, raz włączenie, raz wyłączenie.
    Teraz wystarczy obsłużyć przekaźnik, gdy czas od PIR jeszcze jest większy od 0 lub świecenie ma wynikać ze stanu zmiennej przypisanej do przycisku to załącz, jak nie to wyłącz.
    Pomogłem? Kup mi kawę.
  • #3 17990448
    Gwidon777
    Poziom 10  
    Posty: 35
    Ocena: 1
    Bardzo dziękuję za odpowiedzi. Problem rozwiązany.
REKLAMA