Помогите решить вопрос по таймеру
- Войдите на сайт для отправки комментариев
Чт, 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)));bool isTimeBeetwen(const uint8_t AHour, const uint8_t AMinHour, const uint8_t AMaxHour) { return ((AHour >= AMinHour) && (AHour < AMaxHour)); } . . . uint8_t CurrentHour = myRTC.hours(); bool EnableRelay = ((isTimeBeetween(6,10) || isTimeBeetwen(18,22)); digitalWrite(RELAY_PIN, EnableRelay);Если реле управляется нулем, логику сам перевернёшь, на это ниточки между ушами должно хватить, даже у пыхапэшника. А вот когда у тебя интервал будет включать в себя полночь, вот тогда мы посмеемся вместе.
Хотя... Надо было лучше написать:
лень писать тут и так понятно
да я понял что косяк в логике поэтому и пришел за советом. спасибо.
а как жеж Вечный спор Сишников кто уложит программу в меньшее число строк?
а как жеж Вечный спор Сишников кто уложит программу в меньшее число строк?
Я не Сишник, я пишу длинный, но самодокументированный код, я так привык. Чесноговоря, в эпоху Intellisence совершенно похрен по времени как писать h = 15; или Hours = 15; только в первом случае я через год буду разбираться, что значит "h", а во втором - нет.
От комментария "// Лень писать комментарий" мой когнитивный аппарат аварийно перезагрузился