Не могу понять, почему не работает код
Выдержки, имеющие отношение к вопросу:
Есть небольшой проект, реле включаются по таймеру. Решил изменить по быстрому.
Сделать так, что бы после включения ардуинки, реле включалось сразу на заданное время, после чего через заданный интервал включалось снова на заданное время и так по циклу.
Вроде сделал всё очень просто, но не работает, не включается, не могу понять почему.
const long DurationCh_2 = 120; //ДЛИТЕЛЬНОСТЬ срабатывания реле
const long StartViaCh_2 = 200; //Включится через
int Xer = 0;
int StartRelCn_2;
void loop() // ПРОГРАММЫй безусловный ЦИКЛ
{
DateTime myTime = RTC.now(); //Читаем данные времени из RTC
long utime = myTime.unixtime(); //сохраняем время в формате UNIX
utime %= 86400; //Сохраняем в переменной остаток деления на кол-во секнд в сутках,
//Это дает количество секунд с начала текущих суток
while(Xer < 1) //Должно выполнятся один раз
{
Xer ++;
StartRelCn_2 = utime; //Присвоить текущее время
}
if ((utime >= StartRelCn_2) &&
(utime < (StartRelCn_2+DurationCh_2)))
{
digitalWrite(RelayChn2,LOW); //Устанавливаем на 2 входе релейного модуля НИЗКИЙ уровень - реле срабатывает
StartRelCn_2 = StartRelCn_2 + StartViaCh_2; // Повторно включаем через заданный интервал времени
}
else
{
digitalWrite(RelayChn2,HIGH); //Устанавливаем на 2 входе релейного модуля ВЫСОКИЙ уровень - реле выключается
}