9.1 - Utiliser un capteur à ultrasons
- L C
- 20 oct. 2024
- 2 min de lecture
Dernière mise à jour : 6 déc. 2024
Matériel
1 carte Arduino Uno
1 breadboard
1 capteur à ultrasons HC-SR04
Fils de connexion
Montage

Câblage
UCC sur la broche 5V
Trig sur la broche 12
Écho sur la broche 11
GND sur la broche GND (masse)
Sketch sans utilisation de bibliothèque
const int trigPin = 12;
const int echoPin = 11;
long duree;
int distance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duree = pulseIn(echoPin, HIGH);
Serial.print("Duree : ");
distance = duree*0.034/2;
Serial.print("Distance : ");
Serial.print(distance);
Serial.println("cm");
}
Sketch commenté
// Définition des numéros de port
const int trigPin = 12; // Trigger (emission)
const int echoPin = 11; // Echo (réception)
// Variables utiles
long duree; // durée de l'echo
int distance; // distance
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT); // Configuration du port du Trigger comme une SORTIE
pinMode(echoPin, INPUT); // Configuration du port de l'Echo comme une ENTREE
}
void loop() {
// Émission d'un signal de durée 10 microsecondes
//digitalWrite(trigPin, LOW);
//delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Écoute de l'écho
duree = pulseIn(echoPin, HIGH);
Serial.print("Duree : ");
// Calcul de la distance
distance = duree*0.034/2;
// Affichage de la distance dans le Moniteur Série
Serial.print("Distance : ");
Serial.print(distance);
Serial.println("cm");
}
Sketch utilisant la bibliothèque NewPing
// on ajoute NewPing
#include <NewPing.h>
/* On configure les pins où nous allons connecter le senseur */
#define PIN_TRIG 12 // Pin d'Arduino relié au pin Trigger du capteur à ultrasons
#define PIN_ECHO 11 // Pin d'Arduino relié au pin Echo
#define MAX_DISTANCE 100 // Distance maximale à détecter en cm.
/*Créer l'objet de la classe NewPing, on indique le pin Trigger, le pin Echo et la distance maximale, optionnel */
NewPing sonar(PIN_TRIG, PIN_ECHO, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
// attente de 1 seconde entre les mesures
delay(1000);
// Obtenir la mesure du temps du voyage du son et la garder dans la variable temps
int temps = sonar.ping_median();
// écrire le temps mesuré dans le moniteur série
Serial.print("Temps: ");
Serial.print(temps);
Serial.println(" microsecondes");
// écrire la distance mesurée dans le moniteur série
Serial.print("Distance: ");
// US_ROUNDTRIP_CM constante permettant de mesurer la distance. Convertir le temps en distance (0 = indique hors de portée)
Serial.print(temps / US_ROUNDTRIP_CM);
Serial.println(" cm");
}
Remarques
Serial.begin(9600)
Permet la communication entre la carte Arduino et l'ordinateur et donc d’afficher dans le moniteur série de l'IDE Arduino les valeurs du capteur.
Pour ajouter la bibliothèque dans l'IDE Arduino
Menu Outils - Gérer les bibliothèques - Rechercher - taper NewPing - Installer
Réalisation

La 1ère valeur est la durée
La 2ème valeur est la distance
distance = durée * 0.034/2
Rappel
distance aller retour = vitesse du son x durée
Donc :
distance=1/2×vitesse du son×durée
