|

Afficher la valeur d’un HC-SR04 sur écran LCD I2C 16×4 avec Arduino

Prérequis :

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);  // set the LCD address to 0x27 for a 16 chars and 4 line display

// La broche numérique 9 est reliée à trig HC-SR04. On lui donne le nom trigPin.
int trigPin = 9;
// La broche numérique 8 est reliée à echo HC-SR04. On lui donne le nom echoPin.
int echoPin = 8;
// Déclaration variable duration qui va servir à stocker une valeur au format long.
long duration;
// Déclaration variable distance qui va servir à stocker une valeur au format float.
float distance;

void setup() {
  lcd.init();
  lcd.backlight();

  // Définit trigPin comme sortie.
  pinMode(trigPin, OUTPUT);
  // Définit echoPin comme entrée.
  pinMode(echoPin, INPUT);
  // placer le curseur sur la colonne 5, ligne 0
  lcd.setCursor(5, 0);
  // Imprime un message
  lcd.print("Distance :");
}

void loop() {
  // Debut de la mesure avec un signal de 10 µS applique sur trigPin //

  digitalWrite(trigPin, LOW);  // On efface l'etat logique de trigPin
  delayMicroseconds(2);
  // Met la broche numérique trigPin sur ON
  digitalWrite(trigPin, HIGH);
  // On attend 10 millisecondes
  delayMicroseconds(10);
  // Met la broche numérique trigPin sur OFF
  digitalWrite(trigPin, LOW);
  // On lit le temps d'impulsion sur echoPin et on stock la valeur dans la variable duration
  duration = pulseIn(echoPin, HIGH);
  // On calcule la distance par rapport à la durée de l'impulsion
  // Puis on stocke la valeur dans la variable distance
  distance = duration * 0.034 / 2;
  
  // Si distance <= 50 cm on exécute les actions entre {}
  if (distance <= 50) {
    // placer le curseur sur la colonne 0, ligne 1
    // (note : la ligne 0 est la première ligne, puisque le comptage commence par 0):
    lcd.setCursor(4, 2);
    // Imprime des espaces pour effacer ancienne valeur.
    lcd.print("           ");
    // placer le curseur sur la colonne 0, ligne 1
    lcd.setCursor(6, 2);
    // Imprime la distance qui est stockée dans distance
    lcd.print(distance);
    // Imprime un message
    lcd.print(" cm");
  }
  // Sinon on exécute les actions entre {}
  else {
    // ETC ...
    lcd.setCursor(4, 2);
    lcd.print("Hors portee");
  }
  // Attend 500 millisecondes.
  delay(500);
}

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *