// Inclusion des bibliothèques nécessaires
#include <NewPing.h>
#include <LiquidCrystal.h>
// Définition des constantes pour les broches
#define TRIGGER_PIN 9 // Broche pour le trigger du capteur à ultrasons
#define ECHO_PIN 10 // Broche pour l'écho du capteur à ultrasons
#define MAX_DISTANCE 401 // Distance maximale de détection en cm
#define SPEAKER_PIN 13 // Broche pour le haut-parleur
#define LED_GREEN_PIN 7 // Broche pour la LED verte
#define LED_RED_PIN 8 // Broche pour la LED rouge
// Création d'un objet NewPing pour le capteur à ultrasons
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
// Création d'un objet LiquidCrystal pour l'écran LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Variable pour stocker le timestamp précédent
unsigned long previousMillis = 0;
// Intervalle de temps entre les mesures (1 seconde)
const long interval = 1000;
void setup() {
// Initialisation des broches en sortie ou entrée
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(SPEAKER_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_RED_PIN, OUTPUT);
// Initialisation de l'écran LCD
lcd.begin(16, 2);
// Initialisation de la communication série
Serial.begin(9600);
}
void loop() {
// Récupération du timestamp actuel
unsigned long currentMillis = millis();
// Vérification si l'intervalle de temps est écoulé
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Lecture de la distance avec le capteur à ultrasons
int distance = sonar.ping_cm();
// Si la distance est inférieure ou égale à 50 cm
if (distance <= 50) {
// Activation du haut-parleur et de la LED rouge
digitalWrite(SPEAKER_PIN, HIGH);
digitalWrite(LED_GREEN_PIN, LOW);
digitalWrite(LED_RED_PIN, HIGH);
// Affichage du message d'alerte sur l'écran LCD
lcd.setCursor(0, 0);
lcd.print("Be careful! ");
lcd.print(" You approach ");
lcd.print(distance);
lcd.print(" cm");
} else {
// Désactivation du haut-parleur et de la LED rouge
digitalWrite(SPEAKER_PIN, LOW);
digitalWrite(LED_GREEN_PIN, HIGH);
digitalWrite(LED_RED_PIN, LOW);
// Affichage du message de sécurité sur l'écran LCD
lcd.setCursor(0, 0);
lcd.print("You are safe now! ");
lcd.print(" ");
lcd.print(distance);
lcd.print(" cm");
}
}
}