O objetivo deste sistema é controlar a quantidade necessária de água no solo de uma determinada planta. Como sabemos cada planta pode consumir mais ou menos quantidade de água, este sistema além de "regar" a planta quando necessário, permite regularmos a quantidade de umidade existente no solo.
bool leituraSensor;
bool leituraAnterior;
void setup() {
//Sensor
pinMode(8, INPUT);
//Atuador
pinMode(12, OUTPUT);
//LEDs
pinMode(5, OUTPUT); // LED vermelho
pinMode(6, OUTPUT); // LED amarelo
pinMode(7, OUTPUT); // LED verde
}
void loop() {
leituraSensor = digitalRead(8);
if (leituraSensor == HIGH) {
//No estado seco
digitalWrite(5, HIGH); // LED vermelho
digitalWrite(7, LOW); // LED verde
} else {
//No estado úmido
digitalWrite(5, LOW); // LED vermelho
digitalWrite(7, HIGH); // LED verde
}
//Ao entrar no estado seco
if (leituraSensor && !leituraAnterior) {
delay(5000);
digitalWrite(5, LOW); // LED vermelho
digitalWrite(6, HIGH); // LED amarelo
while (digitalRead(8)) {
digitalWrite(12, HIGH); //rele ou válvula or solenoide ou bomba
delay(500);
digitalWrite(12, LOW); //rele ou válvula or solenoide ou bomba
delay(10000);
}
digitalWrite(6, LOW); // LED amarelo
}
leituraAnterior = leituraSensor;
}