Сбои в работе циклов переключения реле(сформулировал, как смог;))

ситх
Offline
Зарегистрирован: 26.10.2012

Добрый день. Задумал собрать для подсобного хозяйства улучшуху одну. Что-то типа автономного блока упраления вентиляцией. Написал простенькую менюшку, с субменю, в котором задается период цикла в минутах, затем запускается цикл в котором сравнивается реальное время с временем, в которое задался цикл вытяжки(тоже переменная). Первые два цикла все работает, а потом-через раз(

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;
                }
                 

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Не разбираясь в подробностях могу сказать, что сравнивать время лучше не на равенство, а на больше или равно, потому что точно попасть в нужное время не всегда реально. Может это не решение вопроса, но кто знает