Lire un capteur de niveau d'eau avec Arduino
Dans ce tutoriel, nous vous montrons comment lire un capteur de niveau d'eau ou de pluie avec une carte compatible Arduino UNO.
Ce capteur détecte la profondeur de l'eau à l'aide d'un circuit amplificateur et de plusieurs pistes conductrices sur la carte. Lorsqu'on plonge le module, la résistance des pistes conductrices varie en fonction de la profondeur de l'eau. Le signal de la profondeur de l'eau peut ensuite être converti et lu sur l'entrée analogique de l'Arduino.
Avec le capteur de niveau d'eau, vous pouvez mesurer la pluie et la profondeur de l'eau ou détecter la présence d'une fuite. Le capteur est principalement composé d'un transistor, d'une résistance de 1M Ohm et de plusieurs pistes conductrices ouvertes.
Le capteur possède une résistance de pull-up de 1M Ohm pour maintenir le capteur à l'état "High" jusqu'à ce que des gouttes d'eau court-circuitent les pistes conductrices du capteur. Ainsi, le capteur fonctionne même sur l'entrée numérique de l'Arduino. Sur l'entrée analogique, il est possible de mesurer la quantité d'eau entre les contacts des pistes conductrices.
Le niveau d'eau est déterminé par une série de pistes conductrices parallèles exposées. Selon la quantité d'eau, la valeur analogique change. Cette valeur analogique peut être lue et utilisée dans un programme pour obtenir la fonction du capteur de niveau d'eau.
Composants nécessaires :
- Carte compatible Arduino UNO R3
- Capteur de niveau d'eau
- Câble 3 connecteurs femelle-mâle
| Capteur de niveau d'eau | Arduino |
| - | GND |
| + | 5V |
| S | A0 |
Afficher / masquer le code
int Sensor = A0;
int alterMesswert = 0; // Variable pour comparer avec la valeur mesurée précédente
char printBuffer[128];
void setup() {
Serial.begin(9600);
}
void loop() {
int messwert = analogRead(Sensor); // Lire le capteur et stocker la valeur dans la variable messwert
// Vérifier si la valeur a changé de plus de 10 vers le haut ou vers le bas
if (((alterMesswert >= messwert) && ((alterMesswert - messwert) > 10)) || ((messwert > alterMesswert) && ((messwert - alterMesswert) > 10))) {
sprintf(printBuffer, "Messwert ist %d\n", messwert);
Serial.print(printBuffer);
alterMesswert = messwert;
}
}