Проблема с диапазоном времени
- Войдите на сайт для отправки комментариев
Втр, 18/07/2017 - 00:34
Не могу заставить работать свечение светодиода в определенном промежутке времени. Если ставить всё в пределах одного часа(например от 10:30 до 10:55), то всё работает. А вот если указан диапазон от 10:30 до 11:20, то в включается он в нужное время, но вот выключается он при переходе в новый час(11:00). Подскажите, как это вылечить? Вот условие из скетча:
if ((rtc_h >= onlight1_h && rtc_m >= onlight1_m) && (rtc_h <= offlight1_h && rtc_m <= offlight1_m)) { digitalWrite(led1, HIGH); } else { digitalWrite(led1, LOW); } if ((rtc_h >= onlight2_h && rtc_m >= onlight2_m) && (rtc_h <= offlight2_h && rtc_m <= offlight2_m)) { digitalWrite(led2, HIGH); } else { digitalWrite(led2, LOW); }
ну, и где у тебя в коде 10 и 30 или 10 и 55?
*дал бы по лбу хрустальным шаром.
малость это не учел)
Распишу по переменным:
rtc_h - текущий час
rtc_m - текущие минуты
onlight1_h - час включения светодиода
onlight1_m - минуты включения светодиода,
offlight1_h - час отключения
offlight1_m - минуты отключения
ок.
ну, значит как-то так должно быть:
и не говори, что у тебя эти условия проверяются реже 1 минуты и поэтому нужно '<' и '>'
Не могу заставить работать ........, то в включается он в нужное время, но вот выключается он при переходе в новый час(11:00). Подскажите, как это вылечить? Вот условие из скетча:
Э-хе-хех....Вы наверное имели в виду:
if (
( //условие включения
(rtc_h = onlight1_h && rtc_m >= onligth1_m) // час равен И минуты больше
|| (rtc_h > onligth1_h) // или час больше
)
&& (тоже самое для времени выкл...) )
Хотя #3 все показано просто и ясно (если, конечно, Вы управляете вкл/выкл только из одного места).