Skocz do zawartości

System nawadniania


Pomocna odpowiedź

Witam,

proszę o konstruktywne uwagi, sugestie dotyczące poniższego kodu. Działanie jego ma być proste i użyteczne, włącznie elektrozaworów w wybrane dni tygodnia o określonych godzinach. 

#include <Wire.h>
#include <DS3231.h>
#include <Arduino.h>
DS3231 rtc(SDA,SCL);
Time t;

//godziny wlaczenia/wylaczenia zaworow
//zawor_1
int relay_1 = 9;
//rano
const int z1_r_godzina_wlaczenia = 7;
const int z1_r_minuta_wlaczenia = 10;
const int z1_r_godzina_wylaczenia = 7;
const int z1_r_minuta_wylaczenia = 25;
//wieczor
const int z1_w_godzina_wlaczenia = 18;
const int z1_w_minuta_wlaczenia = 10;
const int z1_w_godzina_wylaczenia = 18;
const int z1_w_minuta_wylaczenia = 30;
//zawor_2
int relay_2 = 10;
//rano
const int z2_r_godzina_wlaczenia = 7;
const int z2_r_minuta_wlaczenia = 26;
const int z2_r_godzina_wylaczenia = 7;
const int z2_r_minuta_wylaczenia = 41;
//wieczor
const int z2_w_godzina_wlaczenia = 18;
const int z2_w_minuta_wlaczenia = 31;
const int z2_w_godzina_wylaczenia = 18;
const int z2_w_minuta_wylaczenia = 51;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(57600);
  rtc.begin();
  pinMode(relay_1,OUTPUT);
  pinMode(relay_2,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  t = rtc.getTime();
  if (rtc.getDOWStr()=="Monday" || rtc.getDOWStr()=="Wednesday" || rtc.getDOWStr()=="Friday"){
    //rano wlacz
    if (t.hour == z1_r_godzina_wlaczenia && t.min == z1_r_minuta_wlaczenia){
      digitalWrite(relay_1, HIGH);
    }
    if (t.hour == z2_r_godzina_wlaczenia && t.min == z2_r_minuta_wlaczenia){
      digitalWrite(relay_2, HIGH);
    }
    //wieczor wlacz
    if (t.hour == z1_w_godzina_wlaczenia && t.min == z1_w_minuta_wlaczenia){
      digitalWrite(relay_1, HIGH);
    }
    if (t.hour == z2_w_godzina_wlaczenia && t.min == z2_w_minuta_wlaczenia){
      digitalWrite(relay_2, HIGH);
    }
    //rano wylacz
    if (t.hour >= z1_r_godzina_wylaczenia && t.min >= z1_r_minuta_wylaczenia){
      digitalWrite(relay_1, LOW);
    }
    if (t.hour >= z2_r_godzina_wylaczenia && t.min >= z2_r_minuta_wylaczenia){
      digitalWrite(relay_2, LOW);
    }
    //wieczor wylacz
    if (t.hour >= z1_w_godzina_wylaczenia && t.min >= z1_w_minuta_wylaczenia){
      digitalWrite(relay_1, LOW);
    }
    if (t.hour >= z2_w_godzina_wylaczenia && t.min >= z2_w_minuta_wylaczenia){
      digitalWrite(relay_2, LOW);
    }
  }
  else {
    digitalWrite(relay_1, LOW);
    digitalWrite(relay_2, LOW);
  }
}

 

Edytowano przez frankmartin
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.