Сбои в работе циклов переключения реле(сформулировал, как смог;))
- Войдите на сайт для отправки комментариев
Сб, 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; }
Не разбираясь в подробностях могу сказать, что сравнивать время лучше не на равенство, а на больше или равно, потому что точно попасть в нужное время не всегда реально. Может это не решение вопроса, но кто знает