Сбои в работе циклов переключения реле(сформулировал, как смог;))
- Войдите на сайт для отправки комментариев
Сб, 30/03/2013 - 13:43
Добрый день. Задумал собрать для подсобного хозяйства улучшуху одну. Что-то типа автономного блока упраления вентиляцией. Написал простенькую менюшку, с субменю, в котором задается период цикла в минутах, затем запускается цикл в котором сравнивается реальное время с временем, в которое задался цикл вытяжки(тоже переменная). Первые два цикла все работает, а потом-через раз(
if (cycle!=0) //запуск цикла повторений вентиляции
{
//if (cycle2>cycle) cycle2=0;
realtime=(RTC.get(DS1307_SEC,false));
if (realtime == time_s & cycle2 == cycle )
{
//delay(900);
if (trig==1)
{
digitalWrite(relay1, LOW);
digitalWrite(relay2, HIGH);
}
if (trig==2)
{
digitalWrite(relay1, HIGH);
digitalWrite(relay2, LOW);
}
delay(900);
trig++;
if (trig>2) trig=0;
}
if (cycle2>cycle) cycle2=0;
cycle2++;
//if (trig>2) trig=0;
}
Не разбираясь в подробностях могу сказать, что сравнивать время лучше не на равенство, а на больше или равно, потому что точно попасть в нужное время не всегда реально. Может это не решение вопроса, но кто знает