#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Initialiser l'écran LCD 16x2 avec l'adresse I2C 0x27 (vérifiez l'adresse si nécessaire)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Définir les broches pour le capteur HC-SR04
const int trigPin = 9; // Broche TRIG
const int echoPin = 10; // Broche ECHO
// Variable pour stocker la durée et la distance
long duration;
int distanceCm;
void setup() {
// Initialiser les broches du capteur
pinMode(trigPin, OUTPUT); // TRIG comme sortie
pinMode(echoPin, INPUT); // ECHO comme entrée
// Initialiser l'écran LCD
lcd.init(); // Démarrer l'écran LCD
lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD
// Afficher un message de démarrage sur le LCD
lcd.setCursor(0, 0); // Positionnement du curseur en haut à gauche (colonne 0, ligne 0)
lcd.print("Distance: "); // Texte initial
}
void loop() {
// Assurer que le TRIG est à LOW au départ
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Envoyer une impulsion HIGH sur le TRIG pendant 10 microsecondes
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Lire la durée de l'impulsion HIGH sur la broche ECHO
duration = pulseIn(echoPin, HIGH);
// Calculer la distance en centimètres (vitesse du son = 343 m/s ou 29,1 µs/cm)
distanceCm = duration * 0.034 / 2;
// Afficher la distance sur le LCD
lcd.setCursor(0, 1); // Positionnement du curseur en bas à gauche (colonne 0, ligne 1)
lcd.print("Distance: "); // Afficher le texte
lcd.print(distanceCm); // Afficher la distance mesurée
lcd.print(" cm "); // Ajouter "cm" et effacer d'anciennes valeurs
// Pause d'une seconde avant la prochaine mesure
delay(1000);
}