const int TRIG_PIN = 13; // Broche de déclenchement du capteur ultrasonique
const int ECHO_PIN = 12; // Broche de réception du capteur ultrasonique
const int buzz = 11; // Broche de commande du buzzer
float duration, distance; // Variables pour stocker la durée du signal ultrasonique et la distance mesurée
void setup() {
Serial.begin(9600); // Initialise la communication série à une vitesse de 9600 bps
pinMode(13, OUTPUT); // Configure la broche de déclenchement en mode sortie
pinMode(12, INPUT); // Configure la broche de réception en mode entrée
pinMode(11, OUTPUT); // Configure la broche du buzzer en mode sortie
}
void loop() {
digitalWrite(TRIG_PIN, LOW); // Désactive la broche de déclenchement
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); // Active la broche de déclenchement
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW); // Désactive à nouveau la broche de déclenchement
duration = pulseIn(ECHO_PIN, HIGH); // Mesure la durée du signal ultrasonique réfléchi
distance = (duration * 0.0343) / 2; // Calcule la distance en utilisant la vitesse du son dans l'air
Serial.print("Distance : ");
Serial.println(distance); // Affiche la distance mesurée sur le moniteur série
delay(100);
// Émet un son sur le buzzer en fonction de la distance mesurée
if (distance < 10) {
tone(buzz, 2000, 200); // Si la distance est inférieure à 10 cm, émet un son à 2000 Hz pendant 200 ms
} else if (distance < 20) {
tone(buzz, 1500, 300); // Si la distance est entre 10 et 20 cm, émet un son à 1500 Hz pendant 300 ms
} else if (distance < 30) {
tone(buzz, 1000, 400); // Si la distance est entre 20 et 30 cm, émet un son à 1000 Hz pendant 400 ms
} else {
noTone(buzz); // Si la distance est supérieure à 30 cm, arrête le son
}
}