Arduino Polska Forum

Pełna wersja: Jak to zrobić? if ((zakresCzas >= zakres1) && (zakresCzas < zakres2))
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Kod:
if ((zakresCzas >= zakres1) && (zakresCzas < zakres2))
   {
 digitalWrite(PRZEK_1, ON);
  }else{
    digitalWrite(PRZEK_1, OFF);
  }
Mam coś takiego. Ustawiam czas OD zakres1 DO zakres2 i chcę, aby przekaźnik włączał się od - do a poza zakresem był wyłączony. Wszystko działa jak zakres1, czyli godzina jest wcześniejsza od godziny zakres2, ale jak ustawie np., że ma działać OD 22:15 DO 07:30 to niestety już nie.

Pomóżcie to zmienić  Huh   Jakoś mam brak pomysłu i wiedzy. Może bardziej wiedzy.
Pozdrawiam
Zamieniaj godziny na string albo porównuj najpierw godziny potem minuty.
jeśli godzina a=azadane i minua b=bzadana to wykonaj funkcje.
Sprawdzaj czy miedzy zakres1, a zakres2 następuje zmiana daty, każdy RTC to oferuje.
Jeśli tak, to do zakres2 dodaj 24:00.
I taka sugestia, trochę OT... kiedy zakładasz temat, pisz w nim, o co Ci chodzi. Tak zresztą widnieje w Regulaminie.
A przyszło mi coś takiego do głowy że jeżeli zakres1 jest większe od zakres2 to dodać do zakres2 np. 24 i potem jeżeli CZAS_aktualny jest >= zakres2 to PRZEK_1 OFF. Nie wiem tylko jak to zapisać w C i nie jestem pewien czy to zadziała. Pomoże ktoś napisać taką funkcje? Jakoś zmienić i dopisać co na początku.
PS. Temat zmieniłem wg. sugestii "krn78" choć nie wiem jaki powinien być aby był zrozumiały.
Zerknij do mojego tematu.
https://forum.arduinopolska.pl/watek-wy%...ik-czasowy
Zakres działa ok tylko mam problem z godzina 8 i 9 bo rozpoznaje jako octal constant.
Może tutaj ktoś pomoże.