Arduino Polska Forum
Problem z DS 1307 - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: Problem z DS 1307 (/watek-problem-z-ds-1307)



Problem z DS 1307 - szybki946 - 06-02-2017

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 
}


RE: Problem z DS 1307 - Smaczek - 06-02-2017

Witam,
Jak godzina ma być zarazem równa i mniejsza od 13?
Pozdrawiam


RE: Problem z DS 1307 - adix - 06-02-2017

Kolego napisz co chcesz osiągnąć.


RE: Problem z DS 1307 - szybki946 - 06-02-2017

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ć.


RE: Problem z DS 1307 - krn78 - 23-02-2017

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
}