Skocz do zawartości

System nawadniania


frankmartin

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.