Arduino Polska Forum

Pełna wersja: Problem z DS 1307
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam mam problem z zrobienie kilka czasów włączania i wyłączania a o to kawałek kodu gdzie sprawi mi problem:

if (GODZ == 13 && MIN >= 37 && GODZ < 13 && MIN < 38)               //karmienie 1

            {

myservo.write(90);
   digitalWrite(FIL, LOW);         //FILTR OFF  
   }
            else {

myservo.write(0);
   digitalWrite(FIL, HIGH);         //FILTR OFF 
}

if (GODZ == 13 && MIN >= 39 && GODZ < 13 && MIN < 40)               //karmienie 2
            {

myservo.write(90);
   digitalWrite(FIL, LOW);         //FILTR OFF  
   }
            else {

myservo.write(0);
   digitalWrite(FIL, HIGH);         //FILTR OFF 
}
Witam,
Jak godzina ma być zarazem równa i mniejsza od 13?
Pozdrawiam
Kolego napisz co chcesz osiągnąć.
Dobra chodzi mi o to żeby załączały się 2 karmienia dla ryb w akwarium, godziny jakie podałem to tylko przykładowe .Chodzi o to ze działa tylko jeden czas zawsze ten ostatni i nie wiem jak to rozwiązać.
Mi osobiście nie podoba się, podobnie jak koledze Smaczek, zapis o jednoczesnej godzinie takiej i innej. Algebra Boole'a mówi, że jeśli jednocześnie masz warunek spełniony i niespełniony, nie otrzymasz wartości pozytywnej (A*nA=0, gdzie nA - negacja A).
Spróbuj tak:

Kod:
if (GODZ == 13 && MIN >= 37 && MIN < 38)               //karmienie 1
            {
myservo.write(90);
   digitalWrite(FIL, LOW);         //FILTR OFF  
   }
            else {
myservo.write(0);
   digitalWrite(FIL, HIGH);         //FILTR ON
}

if (GODZ == 13 && MIN >= 39 && MIN < 40)               //karmienie 2
            {
myservo.write(90);
   digitalWrite(FIL, LOW);         //FILTR OFF  
   }
            else {
myservo.write(0);
   digitalWrite(FIL, HIGH);         //FILTR ON
}