// Librairie pour le capteur ultrason HC-SR04
#include <Ultrasonic.h>
// Broches de connexion du capteur ultrason
#define TRIGGER_PIN 12 // Broche TRIGGER connectée à la broche 12 de l'Arduino
#define ECHO_PIN 13 // Broche ECHO connectée à la broche 11 de l'Arduino
// Broches de commande des vannes
#define VANNE_ENTREE_PIN 18 // Broche de commande de la vanne d'entrée
#define VANNE_SORTIE_PIN 19 // Broche de commande de la vanne de sortie
// Seuil de distance pour considérer le réservoir plein
#define SEUIL_PLEIN 3 // Distance en centimètres
// Durée d'ouverture ou de fermeture des vannes en millisecondes
#define DUREE_ACTION_VANNE 2000
// Initialisation du capteur ultrason
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup() {
// Initialisation des broches de commande des vannes
pinMode(VANNE_ENTREE_PIN, OUTPUT);
pinMode(VANNE_SORTIE_PIN, OUTPUT);
// Initialisation des vannes (fermées au démarrage)
digitalWrite(VANNE_ENTREE_PIN, LOW);
digitalWrite(VANNE_SORTIE_PIN, LOW);
}
void loop() {
// Lecture de la distance mesurée par le capteur ultrason
long distance = ultrasonic.read();
// Vérification si le réservoir est plein ou vide
if (100<=distance) {
// Réservoir plein : ouvrir la vanne de sortie et fermer la vanne d'entrée atteindre la led vert et allumer la led rouge
digitalWrite(VANNE_ENTREE_PIN, LOW);
digitalWrite(VANNE_SORTIE_PIN, HIGH);
} else {
// Réservoir non plein : ouvrir la vanne d'entrée et fermer la vanne de sortie, atteindre la led rouge et allumer la led vert
digitalWrite(VANNE_ENTREE_PIN, HIGH);
digitalWrite(VANNE_SORTIE_PIN, LOW);
}
// Attendre un certain temps avant de répéter la mesure
delay(1000); // Attendre 1 seconde avant de refaire la mesure
}