#define PIN_BUTTON A1
#define PIN_TRIG A3 //définit le nom symbolique pour la broche TRIG utilisée par le capteur à ultrasons.
#define PIN_ECHO A2 //définiT le nom symbolique pour la broche ECHO utilisée par le capteur à ultrasons.
void setup() {
Serial.begin(115200);//: Initialise la communication série à un débit de 115200 bits par seconde.
pinMode(PIN_BUTTON, INPUT_PULLUP);// Configure la broche connectée au bouton en tant qu'entrée avec une résistance de tirage vers le haut.
pinMode(PIN_TRIG, OUTPUT);// Configure la broche connectée à la broche de déclenchement du capteur à ultrasons en tant que sortie.
pinMode(PIN_ECHO, INPUT);//Configure la broche connectée à la broche d'écho du capteur à ultrasons en tant qu'entrée.
}
void loop() {
while (digitalRead(PIN_BUTTON) == HIGH) {
delay(10);
}//Cette boucle attend que le bouton connecté à PIN_BUTTON soit pressé. Elle continue de boucler jusqu'à ce que le bouton soit pressé, vérifiant son état toutes les 10 millisecondes.
// Start a new measurement:
digitalWrite(PIN_TRIG, HIGH);//Définit la broche de déclenchement du capteur à ultrasons sur HIGH pour initier une mesure.
delayMicroseconds(10);//Attend pendant 10 microsecondes.
digitalWrite(PIN_TRIG, LOW);// Définit la broche de déclenchement du capteur à ultrasons sur LOW pour terminer l'impulsion de déclenchement.
int duration = pulseIn(PIN_ECHO, HIGH);//Mesure la durée de l'impulsion d'écho (le temps nécessaire à l'onde sonore ultrasonore pour se rendre à un objet et revenir) et la stocke dans la variable duration.
float distance = duration / 58.0;//Calcule la distance jusqu'à l'objet en centimètres en utilisant la formule : distance = durée / 58, où 58 est la vitesse du son en microsecondes par centimètre.
Serial.print("Distance en cm: ");//Imprime la distance mesurée en centimètres sur le moniteur série à des fins de débogage.
Serial.println(distance);
while (digitalRead(PIN_BUTTON) == LOW) {
delay(10);
}// Cette boucle attend que le bouton soit relâché avant de passer à la prochaine mesure.
delay(100);//joute un petit délai avant de commencer la prochaine itération de la boucle.
}
//conclusion: Le programme attend que le bouton-poussoir soit enfoncé.
// Lorsqu'il est enfoncé, il déclenche le capteur à ultrasons pour envoyer une impulsion
//mesure le temps nécessaire pour que l'impulsion rebondisse sur un objet
// calcule la distance en fonction de ce temps
//et affiche la distance sur le moniteur série.
//Le programme attend ensuite que le bouton soit relâché avant de permettre une autre mesure.