Помогите решить вопрос по таймеру
- Войдите на сайт для отправки комментариев
Чт, 23/09/2021 - 21:03
Добрый день, уважаемые, подскажите плиз по коду, я после php на c++ так себе.
Нужно настроить реле включение в с 6 утра до 10 утра и потом с 6 вечера до 10 вечера.
Я написал такой код:
if((myRTC.hours >= 6) && (myRTC.hours<= 9)) //лень писать коммент тут и так понятно { digitalWrite(PIN_RELAY, HIGH); //включить свет утро } else { digitalWrite(PIN_RELAY, LOW); } if((myRTC.hours >= 18) && (myRTC.hours<= 21)) //лень писать коммент тут и так понятно { digitalWrite(PIN_RELAY, HIGH); //включить свет вечер } else { digitalWrite(PIN_RELAY, LOW); }
Реле активно в режиме низкого уровня
Ну про пхп можно было и не заливать, ты даже базовой логики не знаешь.
digitalWrite(PIN_RELAY,
((myRTC.hours >= 6) && (myRTC.hours<= 9)) ||
((myRTC.hours >= 18) && (myRTC.hours<= 21)));
И чуть ниже
Как-то не вяжется ))
Она у Вас будет постоянно мигать, т.к. хотя бы одна из строк №№6 или 13 будет срабатыва всегда (от слова совсем всегда)
Реле активно в режиме низкого уровня
Ну, про это Вам уже написали.
Можно, конечно объяснить и подробнее, да только
Ну про пхп можно было и не заливать, ты даже базовой логики не знаешь.
digitalWrite(PIN_RELAY,
((myRTC.hours >= 6) && (myRTC.hours<= 9)) ||
((myRTC.hours >= 18) && (myRTC.hours<= 21)));
видимо
digitalWrite(PIN_RELAY, !
((myRTC.hours >= 6) && (myRTC.hours<= 9)) ||
((myRTC.hours >= 18) && (myRTC.hours<= 21)));
Если реле управляется нулем, логику сам перевернёшь, на это ниточки между ушами должно хватить, даже у пыхапэшника. А вот когда у тебя интервал будет включать в себя полночь, вот тогда мы посмеемся вместе.
Хотя... Надо было лучше написать:
лень писать тут и так понятно
да я понял что косяк в логике поэтому и пришел за советом. спасибо.
а как жеж Вечный спор Сишников кто уложит программу в меньшее число строк?
а как жеж Вечный спор Сишников кто уложит программу в меньшее число строк?
Я не Сишник, я пишу длинный, но самодокументированный код, я так привык. Чесноговоря, в эпоху Intellisence совершенно похрен по времени как писать h = 15; или Hours = 15; только в первом случае я через год буду разбираться, что значит "h", а во втором - нет.
От комментария "// Лень писать комментарий" мой когнитивный аппарат аварийно перезагрузился