Schéma de connexion et code d'exemple pour Arduino du capteur de distance HC-SR04 et SR04M-2 :

Matériel requis :

  1. Connectez le fil GND du capteur de distance à la broche GND de l'Arduino en utilisant un câble de connexion.
  2. Connectez le fil VCC du capteur de distance à la broche 5V de l'Arduino en utilisant un câble de connexion.
  3. Connectez la broche TRIG ou RX du capteur de distance à la broche 9 de l'Arduino en utilisant un câble de connexion.
  4. Connectez la broche ECHO ou TX à la broche 10 de l'Arduino en utilisant un câble de connexion.
  5. Téléversez le code sur l'Arduino.
  6. Ouvrez le moniteur série en appuyant sur la combinaison de touches CTRL+MAJ+M.
  7. Définissez la vitesse de transmission (baud rate) sur 9600 bauds en utilisant le bouton du milieu en bas à droite.

Vous verrez maintenant la distance entre le capteur et le premier objet devant le capteur sur le moniteur série. Cela fonctionne en émettant des ondes ultrasoniques. Ces ondes se déplacent dans l'air et lorsqu'elles rencontrent un objet, elles sont réfléchies par l'objet. Le capteur capte ensuite ces ondes réfléchies et mesure le temps écoulé entre l'émission et la réception de ces ondes. Le capteur peut le faire rapidement car les ondes se déplacent à une vitesse impressionnante de 343 mètres par seconde dans l'air.

Schéma de connexion

 

Exemple de code pour Arduino


// Définir les broches pour les capteurs const int trigPin = 9; // Définit la broche à laquelle le déclencheur du capteur est connecté const int echoPin = 10; // Définit la broche à laquelle l'écho du capteur est connecté // Définir les variables long duration; // Variable pour la durée nécessaire à l'écho du capteur pour revenir int distance; // Variable pour la distance que nous allons mesurer void setup() { // Active le moniteur série Serial.begin(9600); // Démarre la communication série avec une vitesse de 9600 bauds // Définit les broches en tant qu'entrée ou sortie pinMode(trigPin, OUTPUT); // Configure la broche de déclenchement en sortie pinMode(echoPin, INPUT); // Configure la broche d'écho en entrée } void loop() { // Envoie un signal à la broche trigPin digitalWrite(trigPin, LOW); // Éteint trigPin delayMicroseconds(50); // Attend 50 microsecondes digitalWrite(trigPin, HIGH); // Envoie un signal à trigPin, une onde est émise delayMicroseconds(200); // Attend 200 microsecondes digitalWrite(trigPin, LOW); // Éteint la broche de déclenchement duration = pulseIn(echoPin, HIGH); // Mesure le temps entre l'envoi et la réception du signal distance = duration * 0.034 / 2; // Calcule la distance en centimètres avec la formule : distance = (temps * vitesse du son) / 2 Serial.print("Distance : "); // Affiche le texte "Distance :" sur le moniteur série Serial.print(distance); // Affiche la distance calculée sur le moniteur série Serial.println(" cm"); // Affiche le texte "cm" sur le moniteur série et passe à la ligne suivante delay(500); // Attend 500 millisecondes avant de recommencer la mesure }