// Initialisation
void setup() {
pinMode(boutonAutoManuel, INPUT);
pinMode(boutonPompe1, INPUT);
pinMode(boutonPompe2, INPUT);
pinMode(capteurNiveau1, INPUT);
pinMode(capteurNiveau2, INPUT);
pinMode(relaisPompe1, OUTPUT);
pinMode(relaisPompe2, OUTPUT);
pinMode(relaisVanne1, OUTPUT);
pinMode(relaisVanne2, OUTPUT);
}
// Fonction pour activer la pompe 1 et ouvrir la vanne 1
void activerPompe1() {
digitalWrite(relaisPompe1, HIGH);
digitalWrite(relaisVanne1, HIGH);
delay(60000); // La pompe 1 fonctionne pendant 1 minute
digitalWrite(relaisPompe1, LOW);
}
// Fonction pour activer la pompe 2 et ouvrir la vanne 2
void activerPompe2() {
digitalWrite(relaisVanne2, HIGH);
delay(20000); // La pompe 2 fonctionne pendant 20 secondes
digitalWrite(relaisPompe2, HIGH);
delay(20000); // Continue de fonctionner pendant 20 secondes
digitalWrite(relaisPompe2, LOW);
digitalWrite(relaisVanne2, LOW);
}
// Boucle principale
void loop() {
bool modeAuto = digitalRead(boutonAutoManuel);
bool manuelPompe1 = digitalRead(boutonPompe1);
bool manuelPompe2 = digitalRead(boutonPompe2);
bool niveau1Ferme = digitalRead(capteurNiveau1) == LOW;
bool niveau2Ferme = digitalRead(capteurNiveau2) == LOW;
if (modeAuto) {
if (niveau1Ferme) {
activerPompe1();
if (niveau2Ferme) {
digitalWrite(relaisVanne1, LOW); // Ferme la vanne 1 si le capteur 2 est fermé
}
}
if (!niveau1Ferme) {
digitalWrite(relaisPompe1, LOW); // Arrête la pompe 1 si le capteur 1 s'ouvre
digitalWrite(relaisVanne1, HIGH); // Ouvre la vanne 1 si le capteur 2 s'ouvre
}
if (niveau2Ferme) {
activerPompe2(); // Active la pompe 2 et ouvre la vanne 2
}
} else {
if (manuelPompe1) {
activerPompe1();
}
if (manuelPompe2) {
activerPompe2();
}
}
}