top of page

CAPTEUR DE

NIVEAU D'EAU

capteur_niveau-eau.png

Le concept de ce capteur est simple : il est là pour déterminer le niveau d'eau d'un contenant. Il fonctionne de manière analogique c'est-à-dire qu'il renvoie une valeur en fonction du niveau de l'eau.

Mise en place du dispositif 
Branchements
montage_niveau_eau.png
Points branchements
  • Les LED : ​​​​​​

Les LED sont branchées en 3,3 V​. Attention ! les LED ne supportent pas le 5V. 

LED rouge : PIN 13

LED jaune : PIN 12

LED verte : PIN 11

Rappel : le PIN est le numéro d'identification du capteur, on l'utilise dans le code.

  • Capteur de niveau d'eau :

Ce capteur se branche en 5V.​

S : A0

+ : 5V

- : GDN

Rappel : A0 il s'agit de la sortie analogique, les données sont récupérées par cette sortie analogique. 

Mise en place du code
Ancre 1

int ledRouge = 13;
int ledOrange = 12;
int ledVerte = 11;

void setup() {


Serial.begin(9600); 

pinMode(ledRouge, OUTPUT);
pinMode(ledOrange, OUTPUT);
pinMode(ledVerte, OUTPUT);  

digitalWrite(ledRouge, HIGH);
digitalWrite(ledOrange, HIGH);
digitalWrite(ledVerte, HIGH);  


}

void loop() {
 

int valeurAnalog = analogRead(A0);
float tension = (float) 5*valeurAnalog/1023;

Serial.print("Tension sur A0 : ");
Serial.println(tension);

delay(1000); 


if(tension<0.82){ 


Serial.print("Niveau à 0%");
  

      //LedRouge s'allume
  
digitalWrite(ledOrange, HIGH);
digitalWrite(ledVerte, HIGH);
digitalWrite(ledRouge, LOW);
Serial.print("Remplisser le réservoir");


}

// si la tension est inférieur à 0.82 écrire sur le port série le niveau est à 0%


else if (tension<1.51){

 

Serial.print("Niveau entre 0% et 25%"); 


//LedRouge clignote 
  

digitalWrite(ledOrange, HIGH);
digitalWrite(ledVerte, HIGH);     
digitalWrite(ledRouge, HIGH);
delay(1000);
digitalWrite(ledRouge, LOW);
delay(1000);
Serial.print("Attention le niveau d'eau est très bas");

}
else if (tension<1.70){


Serial.print("Niveau entre 25% et 50%");
  

//LedOrange s'allume
  
digitalWrite(ledRouge, HIGH);
digitalWrite(ledVerte, HIGH);
digitalWrite(ledOrange, LOW);
Serial.print("Le réservoir est rempli à moins de la moitié");

}

else if (tension<1.77){


Serial.print("Niveau entre 50% et 75%");
      

//LedOrange clignote 
  
digitalWrite(ledRouge, HIGH);
digitalWrite(ledVerte, HIGH);
digitalWrite(ledOrange, HIGH);
delay(1000);
digitalWrite(ledOrange, LOW);
delay(1000);
Serial.print("Le niveau de l'eau passera bientôt en dessous de la moitié du niveau");

}
else if (tension<1.86){


Serial.print("Niveau entre 75% et 100%");
  

//LedVerte clignote 
      
digitalWrite(ledRouge, HIGH);

digitalWrite(ledOrange, HIGH);
digitalWrite(ledVerte, HIGH);
delay(1000); 
digitalWrite(ledVerte, LOW);
delay(1000);
Serial.print("Le niveau d'eau commence à baisser");

}
else {


Serial.print("Niveau à 100%");
  

//LedVerte s'allume
      

digitalWrite(ledRouge, HIGH);
digitalWrite(ledOrange, HIGH);  
digitalWrite(ledVerte, LOW);
Serial.print("Le réservoir est rempli");


}
    

}

Serial.begin(9600) ouverture du port série et fixe le debit de communication à 9600 bauds.

pinMode(variable, OUTPUT) configuration de la broche (ici les LED) comme une sortie.

digitalWrite(variable, HIGH) met la variable en position haute. Ici cela allume la LED.

Faire les comparaisons de niveau de volt par rapport au niveau de remplissage (niveau d'eau). On met plus ou moins le capteur dans l'eau en découpant le capteur en 5 (0%, 25%, 50%, 75% et 100%).

Par exemple : 0% = 0.82 25%= 1.51 50%=1.70v 75%=1.77 100%=1.86..etc

int valeurAnalog = analogRead(A0) 

récupération de la tension de valeur de 0 à 1023, stockée dans une variable de type int (entier) et nommée valeurAnalog.

float tension = (float) 5*valeurAnalog/1023; 

Conversion de la valeur analogue en tension avec la formule 5*valeurAnalog/1023;  (float) -> valeur décimale avec virgule; le tout est stocké dans une valeur décimale appelée tension.

Serial.print("Tension sur A0 : ") renvoie sur le port série, le texte "tension sur A0:"

Serial.println(tension) renvoi de la variable tension sur le port seriedelay(1000) ajout d'un délais de 1s = 1000 millisecondes pour éviter d'avoir trop d'info d'un coup.

Mise en scène
127210978_308889683488638_44764163914850
bottom of page