// SERRA AUTOMATICA PROGETTATA DA LUCA E PAPA' OSCAR
// per aggiunta transistor come interruttore
//#include <LiquidCrystal_I2C.h> // LCD I2C connessione SDA->A4 e SCL->A5 oppure SDA->SDA e SCL->SCL
//#include <Wire.h>
//LiquidCrystal_I2C lcd(0x3f, 16, 2); // I2C address 0x3f, 16 column and 2 rows
unsigned long premillis3;
unsigned long premillis4;
unsigned long currmillis;
const unsigned long intervallo3 = 2500; // intervallo tra un controllo umidità terreno e l'altro
const unsigned long intervallo4 = 1000;
const int ONSENSORE = 4; // attiva pin transistor (interruttore alimentazione sensore)
const int UMID_MIN = 450; //Soglia limite per attivazione pompa acqua
const int POMPA = 2; // pin attivazione pompa acqua
void setup(){
Serial.begin(9600);
//lcd.init(); // initialize the lcd
//lcd.backlight(); // LCD
//Wire.begin(); // Start the I2C interface
pinMode(ONSENSORE, OUTPUT); // pin interruttore
pinMode(POMPA, OUTPUT); // pin pompa in uscita
premillis3 = 0;
premillis4 = 0;
}
void loop(){
currmillis = millis();
if((currmillis - premillis3) >= intervallo3){
premillis3 = currmillis;
umidter();
}
}
void umidter(){
digitalWrite(ONSENSORE, HIGH);
static int stato = 0;
static unsigned long t1 = 0;
switch (stato) {
case 0:
t1 = millis();
if ((millis() - t1) > 2000) {
stato = 1;
}
break;
case 1:
int TERRENO = analogRead(A0);
if(TERRENO < UMID_MIN){
stato = 0;
t1 = millis();
digitalWrite(POMPA, HIGH);
} else{
digitalWrite(POMPA, LOW);
stato = 0;
}
break;
}
}