Dans cette leçon, vous apprendrez à utiliser un module capteur de niveau d’eau. Ce module permet de mesurer la profondeur de l’eau grâce à un circuit amplificateur, constitué d’un transistor et de plusieurs pistes en peigne sur le PCB.

Lorsqu’il est plongé dans l’eau, ces pistes créent une résistance variable qui change en fonction de la profondeur de l’eau. Cette variation est ensuite convertie en signal électrique, que l’on peut lire grâce à la fonction ADC (convertisseur analogique-numérique) de la carte Arduino UNO.

Caractéristiques techniques :

  1. Tension de fonctionnement : 5 V

  2. Courant de fonctionnement : < 20 mA

  3. Interface : Analogique

  4. Dimensions de détection : 40 mm × 16 mm

  5. Température de fonctionnement : 10℃ à 30℃

  6. Signal de sortie : 0 ~ 4,2 V

Schéma du projet

Programme du projet

int adc_id = 0;            // Numéro de l'entrée analogique à lire (A0)
int HistoryValue = 0;      // Valeur précédente pour détecter les changements significatifs
char printBuffer[128];     // Tampon pour stocker la chaîne à afficher

void setup()  {
  Serial.begin(9600);      // Initialisation de la communication série à 9600 bauds
}

void loop() {
    // Lecture de la valeur actuelle de l'entrée analogique
    int value = analogRead(adc_id); // lecture du canal ADC spécifié (0 → A0)

    /* Vérifie si la différence entre la valeur précédente et la nouvelle valeur
       est supérieure à 10 unités (pour éviter d'afficher de petites fluctuations)
       Si oui, on met à jour la valeur et on l'affiche */
    if (((HistoryValue >= value) && ((HistoryValue - value) > 10)) || 
        ((HistoryValue < value) && ((value - HistoryValue) > 10))) {

      // Formate la chaîne à afficher : "ADC0 level is 512"
      sprintf(printBuffer, "ADC%d niveau = %d\n", adc_id, value);

      // Affiche la chaîne sur le moniteur série
      Serial.print(printBuffer);

      // Met à jour la valeur précédente pour la prochaine comparaison
      HistoryValue = value;
    }
}