Krapi chodzi po prostu o zanik zasilania. W Twoim kodzie włączenie i wyłączenie jest tylko w momencie dokładnej godziny, więc jeśli akurat w tym momencie to urządzenie, o którym pisze razorxx100, czyli arduino, będzie bez zasilania, to jak zasilanie powróci, to nie zadziała już wcale wyłączenie/włączenie. Pewnie można go ratować dodatkowymi warunkami i zapisem dodatkowych informacji do eepromu, ale będą to niepotrzebne zapisy (właściwie to nie wiem czy by było potrzebne zapisywanie stanów przekaźników, crobe pisze o takim sposobie). Kod arduino-lab nie ma tej wady, ale ma nową, będzie działał tylko w "danej godzinie", czyli to o czym pisał razorxx100
razorxx100 pisze:Nooo to ustaw sobie czas od 12:31 do 13:11.
Wtedy z miejsca nie spelni ci sie drugi warunek czyli minuta >= 31 jak bedzie np 13:00, wtedy minute masz mniejsza od 31 i przekaznik sie wylaczy.
Dodatkowo masz blad w kodzie ktory podales ( oraz na swojej stronie). Warunek 3 nigdy nie bedzie prawdziwy bo jak 12 moze byc mniejsze od 12 ;)
Taki kod ma prawo istanienia tylko do 1h. czyli np od 13:01 do 13:59.
Krapi pisze:ale ja pytam: po co? skoro z poziomu samego RTC są wyselekcjonowane osobno minuty i godziny w piękny sposób?
nie rozumiem po co utrudniać sobie życie zbędnymi operacjami...
No to pokaż jak napisać taki warunek, żeby po powrocie zasilania zadziałał z opóźnieniem i zrobił to co powinno być zrobione gdyby nie było zaniku zasilania. Pewnie się da, ale byłoby to bardziej skomplikowane, niż te zbędne operacje. A może nie byłoby dużo bardziej skomplikowane, ale każdy może wymyślić inny sposób rozwiązania danego problemu, akurat to mi przyszło do głowy, bo razorxx100 pisał o czasie w jednej zmiennej.
EDIT
Oczywiście czas włączenia i wyłączenia i tak i tak musi być zapisany do eepromu i w momencie uruchamiania odczytane do zmiennych. Różnica jest w tym, że warunek zadziała tak jak trzeba po ewentualnym zaniku zasilania.