/* Programme de régulation de niveau à un seuil utilisant le capteur de pression MPX5010DP étalonné */ // Définition des constantes const int EntreeNiveau = A1; // broche A1 servira à lire le niveau d'eau du détecteur de niveau const int Attente = 1000 ; // temps d'attente entre deux boucles en ms const int SortieRelais = 8; // le relais sera commandé par la broche 8 const int Seuil = 50; // fixe la valeur du niveau d'eau désiré dans le chateau d'eau en cm // coefficients de la droite d'étalonnage H = a*N + b const float a = 0.11; const float b = -5.514; int NiveauLu ; float NiveauMesure ; boolean OnRemplit = LOW; // par défaut on ne remplit pas le chateau d'eau int Commande ; // la commande varie entre 0 et 100% void setup() { /* Initialise le port série */ Serial.begin(9600); pinMode(SortieRelais,OUTPUT); // définit la broche 8 en sortie } void loop() { NiveauLu =analogRead(EntreeNiveau); // Conversion du nombre en hauteur d'eau à l'aide de la droite d'étalonnage NiveauMesure = a * NiveauLu + b; if (NiveauMesure < Seuil) { OnRemplit = HIGH; // On remplit } else { OnRemplit = LOW; // On ne remplit pas } digitalWrite(SortieRelais,OnRemplit); // écriture sur le port de sortie pour commander le relais Commande = OnRemplit *100; // élaboration du signal de commande /* Les valeurs de la commande et de la mesure sont transmises sur le port série */ Serial.print(Commande); Serial.print(" , "); Serial.println(NiveauMesure); //Attente avant nouvelle mesure delay(Attente); }