Modules capteurs à ultrasons HC-SR04

Table des Matières

Ce guide complet est votre ressource unique pour explorer tout ce qu'il y a à savoir sur le HC-SR04. Nous commencerons par les bases, en comprenant son principe de fonctionnement fondamental, qui est la clé pour libérer son potentiel. Ensuite, nous aborderons des aspects importants tels que ses principales spécifications, comment l'interfacer avec des microcontrôleurs populaires, et nous nous plongerons même dans des scénarios d'utilisation avancés. À la fin de ce guide, vous serez parfaitement équipé pour exploiter tout le potentiel du HC-SR04 dans vos propres projets.

Qu'est-ce que le module capteur à ultrasons HC-SR04 ?

Le module capteur à ultrasons HC-SR04 est un dispositif remarquable et très polyvalent qui s'est taillé une place de choix dans le vaste paysage des projets électroniques. Ce qui le distingue vraiment, c'est son rapport qualité-prix, une caractéristique qui le rend accessible à un large éventail d'utilisateurs, des amateurs soucieux de leur budget aux professionnels à la recherche d'une solution abordable pour leurs projets.

Front and back view of HC SR04 Ultrasonic Sensor Module
Front and back view of HC - SR04 Ultrasonic Sensor Module

Spécifications techniques

Il est essentiel de bien comprendre les spécifications techniques du module capteur à ultrasons HC-SR04 pour toute mise en œuvre de projet. Voici le tableau des spécifications techniques :

Tension de fonctionnement
+5 V CC (4,5 V à 5,5 V)
Courant de fonctionnement
~15 mA (veille : ~2 mA)
Portée
2 cm à 400 cm (0,8 po à 13 pi)
Précision
±3 mm (dans le meilleur des cas, varie selon l'environnement)
Résolution
0,3 cm (1 mm théoriquement possible avec calibrage)
Angle de détection
Cône d'environ 15°
Signal d'entrée de déclenchement (Trigger)
Impulsion HAUTE de 10 μs pour lancer la mesure
Signal de sortie d'écho (Echo)
Largeur d'impulsion proportionnelle à la distance : 1 μs = 0,017 cm (basé sur une vitesse du son de 340 m/s)
Fréquence maximale
Fréquence ultrasonique de 40 kHz
Cycle de mesure
≥ 60 ms (pour éviter les interférences entre les mesures)
Température de fonctionnement
-15 °C à +60 °C (5 °F à 140 °F)
Dimensions
45 mm × 20 mm × 15 mm (module capteur)
Poids
~5 g (module seul)

Explication :

  1. Portée : Le HC – SR04 a une portée opérationnelle allant de 2 cm à 400 cm (0,8 pouce à 157 pouces). Cette portée relativement large le rend adapté à une grande variété d'applications. Par exemple, dans un projet de robotique à petite échelle où le robot doit se déplacer dans une pièce, la portée de 2 à 400 cm permet de détecter efficacement les meubles ou les murs à proximité. Dans une application industrielle à plus grande échelle, il peut être utilisé pour mesurer la distance entre les composants d'une machine dans cette plage. Cependant, il est important de noter que la précision peut varier légèrement aux extrémités de cette plage.
  1. Résolution : avec une résolution de 0,3 cm, le HC-SR04 peut fournir des mesures de distance assez précises. Ce niveau de précision est suffisant pour la plupart des amateurs et de nombreuses applications industrielles. Dans un projet lié à l'impression 3D où le capteur est utilisé pour détecter la distance par rapport au plateau d'impression afin de permettre un nivellement automatique, la résolution de 0,3 cm permet de s'assurer que la tête d'impression se trouve à la bonne hauteur au-dessus du plateau, ce qui garantit des impressions de haute qualité.
  1. Alimentation électrique : il fonctionne avec une alimentation électrique de 5 V CC. Pendant son fonctionnement, il consomme un courant de 15 mA, ce qui représente une consommation d'énergie relativement faible. En mode veille, la consommation de courant est encore plus faible, inférieure à 2 mA. Cela en fait un choix économe en énergie pour les projets alimentés par batterie. Par exemple, dans un nœud de capteur IoT alimenté par batterie qui utilise le HC-SR04 pour la détection de distance, la faible consommation d'énergie garantit que la batterie peut durer plus longtemps.
  1. Angle de fonctionnement : l'angle de fonctionnement du HC-SR04 est inférieur à 15°. Cela signifie que le capteur a un champ de vision relativement étroit. Il est plus efficace pour détecter les obstacles qui se trouvent directement devant lui. Dans un système de sécurité domestique intelligent où le capteur est utilisé pour détecter les intrus qui s'approchent d'une porte, l'angle de fonctionnement étroit permet une détection ciblée des objets qui se dirigent directement vers le capteur, réduisant ainsi les fausses alarmes provenant d'objets situés dans la zone périphérique.
  1. Interface : le module dispose d'une interface à 4 broches, qui comprend les broches VCC, GND, Trig et Echo. La conception simple de cette interface facilite la connexion à divers microcontrôleurs et autres composants électroniques.

Explication du brochage

Broche 1
Libellé
VCC
Fonction
Alimentation (positif)
Tension
5 V CC
Connexion
Arduino : 5V
Raspberry Pi : 5V (masse commune avec le module)
Broche 2
Libellé
Trig (Déclenchement)
Fonction
Entrée de déclenchement
▶ Impulsion HAUTE de 10 μs pour lancer la mesure
▶ Niveau BAS pour réinitialiser
Connexion
Arduino : n'importe quelle broche numérique (p. ex. D2)
Raspberry Pi : n'importe quel GPIO (p. ex. GPIO17)
Broche 3
Libellé
Echo
Fonction
Sortie d'écho
▶ Durée à l'état HAUT = temps d'aller-retour des ondes ultrasonores
▶ Durée HAUTE maximale : 38 ms (délai d'expiration en l'absence d'obstacle)
Connexion
Arduino : n'importe quelle broche numérique (p. ex. D3)
Raspberry Pi : GPIO avec **diviseur de tension** (5 V→3,3 V)
⚠️ Un signal Echo de 5 V branché directement sur le Raspberry Pi peut endommager le GPIO ! Utilisez un diviseur de tension 1 kΩ + 2 kΩ.
Broche 4
Libellé
GND
Fonction
Masse d'alimentation (masse commune)
Connexion
Arduino : GND
Raspberry Pi : GND

Explication :

La broche VCC est chargée d'alimenter le module. Le connecter à une source d'alimentation stable de 5 V, de préférence à partir de la sortie 5 V du microcontrôleur, garantit le bon fonctionnement du module. Une alimentation électrique stable est essentielle pour obtenir des mesures précises. Si l'alimentation électrique est instable, cela peut entraîner des mesures de distance incohérentes. Par exemple, en cas de pics ou de chutes de tension dans l'alimentation électrique du HC-SR04, le capteur peut émettre des impulsions ultrasoniques incorrectes ou mal interpréter les échos reçus, ce qui entraîne des calculs de distance inexacts.
La broche GND fournit la connexion à la terre nécessaire. Elle complète le circuit électrique et aide à maintenir une tension de référence stable pour le module. Sans une connexion à la terre appropriée, le module peut ne pas fonctionner du tout ou produire des résultats erratiques. Dans un projet basé sur Arduino, la broche GND du HC-SR04 est généralement connectée à la broche GND de la carte Arduino afin de garantir une référence de terre commune.
La broche Trig est le point de départ de la magie. Lorsqu'une impulsion de niveau haut de 10 μs est envoyée à cette broche, elle déclenche l'émetteur ultrasonique qui envoie une rafale de 8 impulsions d'ondes ultrasoniques de 40 kHz. Dans un projet Raspberry Pi basé sur Python, vous pouvez utiliser la bibliothèque GPIO (General Purpose Input/Output) pour générer cette impulsion de 10 μs à niveau haut. Ce mécanisme d'entrée numérique simple permet de contrôler facilement le processus de mesure de distance.

La broche Echo est la clé pour obtenir les informations de distance. Une fois les ondes ultrasonores émises, la broche Echo passe à l'état haut. Elle reste à l'état haut jusqu'à ce que les ondes réfléchies soient reçues par le récepteur ultrasonique. La durée pendant laquelle la broche Echo est à l'état haut est directement proportionnelle au temps mis par les ondes ultrasonores pour faire l'aller-retour vers l'obstacle. En mesurant cette durée, nous pouvons calculer la distance par rapport à l'obstacle à l'aide de la formule Distance ( cm ) = Temps ( μs ) × 0.0343 2 . Dans un projet Arduino basé sur le C++, vous pouvez utiliser la fonction pulseIn() pour mesurer la durée de l'impulsion à l'état haut sur la broche Echo.

Composants principaux et principe de fonctionnement

Composants clés

Pour bien comprendre le fonctionnement du module capteur à ultrasons HC-SR04, il est essentiel de se familiariser au préalable avec ses composants principaux. Chaque pièce joue un rôle distinct et crucial dans le fonctionnement global du module.

  1. Émetteur à ultrasons : il s'agit du composant responsable de la première étape du processus de mesure de la distance. Il émet des ondes ultrasonores à une fréquence de 40 kHz. Ces ondes à haute fréquence sont inaudibles pour l'oreille humaine, mais elles sont essentielles au fonctionnement du capteur. Lorsqu'il est déclenché, l'émetteur envoie ces ondes dans l'environnement environnant. Considérez-le comme un haut-parleur puissant qui émet des ondes sonores à une fréquence bien supérieure à celle que nous pouvons entendre. Dans une application robotique, par exemple, l'émetteur à ultrasons d'un robot enverrait ces ondes de 40 kHz dans la direction dans laquelle le robot se déplace, se préparant à détecter tout obstacle sur son chemin.
  1. Récepteur à ultrasons : comme son nom l'indique, le récepteur à ultrasons a pour fonction de capter les ondes ultrasonores qui ont été réfléchies par les obstacles se trouvant dans le champ d'action du capteur. Une fois que l'émetteur a envoyé les ondes, celles-ci se propagent dans l'air jusqu'à ce qu'elles rencontrent un objet. Les ondes rebondissent alors, et c'est au récepteur de capter ces ondes réfléchies. Il s'agit en quelque sorte d'un microphone très sensible capable de détecter les échos les plus faibles des ondes ultrasonores. Dans un système domotique où le HC-SR04 est utilisé pour détecter la présence d'une personne dans une pièce, le récepteur capterait les ondes qui rebondissent sur le corps de la personne.
  1. Circuit de commande : C'est le cerveau derrière l'opération. Le circuit de commande gère l'ensemble de la séquence de traitement du signal. Il coordonne les actions de l'émetteur et du récepteur. Lorsqu'il reçoit un signal de déclenchement, il ordonne à l'émetteur d'émettre les ondes ultrasonores. Il surveille ensuite attentivement le récepteur pour détecter les ondes réfléchies entrantes. Une fois les ondes reçues, le circuit de commande calcule le temps qu'elles ont mis pour atteindre l'obstacle et revenir. À partir de ce temps et de la vitesse connue du son dans l'air, il calcule la distance jusqu'à l'obstacle. Dans un environnement industriel, le circuit de commande d'un HC-SR04 utilisé pour des machines automatisées gère précisément ces opérations afin de garantir des mesures de distance précises pour le bon fonctionnement des machines.

Comment ça marche

Maintenant que nous connaissons les composants clés, examinons étape par étape comment le HC-SR04 mesure réellement la distance.

Signal de déclenchement : 

Le processus commence par un signal de déclenchement. Lorsqu'une impulsion haute de 10 μs est appliquée à la broche Trig (déclencheur) du module HC-SR04, cela revient à donner au capteur une commande de « démarrage ». Cette impulsion électrique courte mais significative déclenche toute la séquence de mesure de distance. Par exemple, dans un projet basé sur Arduino, vous utiliseriez une simple ligne de code pour envoyer cette impulsion haute de 10 μs à la broche Trig du HC-SR04, lui indiquant de commencer le processus de mesure.

Wave Propagation: 

Une fois déclenché, l'émetteur ultrasonique entre en action. Le module envoie une rafale de 8 impulsions ultrasoniques à une fréquence de 40 kHz. Ces impulsions sont comme une série de « balles soniques » invisibles qui sont projetées dans l'environnement. Après avoir envoyé ces impulsions, le module passe en mode veille, attendant patiemment que les ondes heurtent un obstacle et rebondissent. Dans un scénario réel, si vous utilisiez le HC-SR04 pour mesurer la distance par rapport à un mur dans une pièce, les 8 impulsions se déplaceraient vers le mur, se propageant en forme de cône avec un angle relativement étroit d'environ 15 degrés.

Détection d'écho : 

La broche Echo est essentielle pour détecter les ondes réfléchies. Dès que les ondes ultrasonores sont émises, la broche Echo passe à l'état haut. C'est ainsi que le capteur indique qu'il a commencé le processus de mesure. Il attend ensuite le retour des ondes réfléchies. Lorsque le récepteur ultrasonore capte les ondes réfléchies, la broche Echo passe à l'état bas. La durée pendant laquelle la broche Echo reste à l'état haut est égale au temps de trajet aller-retour des ondes ultrasonores. Dans un projet Raspberry Pi, vous utiliseriez une fonction pour mesurer le temps pendant lequel la broche Echo est activée, ce qui est une étape cruciale dans le calcul de la distance.

Calcul de distance :

Calcul de la distance : La dernière étape consiste à calculer la distance par rapport à l'obstacle. La formule pour calculer la distance en centimètres est Distance (cm) = Temps (μs) × 0.0343 2 . Le facteur 0,0343 provient de la vitesse du son dans l'air, qui est d'environ 343 m/s. Comme les ondes font l'aller-retour vers l'obstacle, nous divisons la distance totale parcourue par 2 pour obtenir la distance simple (aller) jusqu'à l'obstacle. Par exemple, si le temps mesuré pour que la broche Echo soit à l'état haut est de 2000 µs, la distance sera calculée comme suit : 2000 × 0.0343 2 = 34,3 cm. Ce calcul est le même que vous utilisiez le HC-SR04 dans un projet de loisir simple ou dans une application industrielle complexe.

Interfaçage avec les microcontrôleurs courants

Guide d'installation Arduino

Schéma de câblage

La connexion du module capteur à ultrasons HC-SR04 à un Arduino est un processus simple. Voici comment procéder :

  • VCC : connectez la broche VCC du HC-SR04 à la broche 5V de l'Arduino. Cela fournit l'alimentation nécessaire au module capteur. Une alimentation stable de 5V provenant de l'Arduino garantit le fonctionnement optimal du capteur.
  • GND : la broche GND (masse) du HC-SR04 doit être connectée à la broche GND de l'Arduino. Cela établit une référence de masse commune pour le capteur et l'Arduino, ce qui est essentiel pour une communication électrique correcte.
  • Trig : connectez la broche Trig (déclencheur) du HC-SR04 à la broche numérique 2 de l'Arduino. C'est la broche à laquelle l'Arduino enverra l'impulsion de niveau haut de 10 μs pour déclencher le processus de mesure de distance dans le HC-SR04.
  • Echo : la broche Echo du HC-SR04 est connectée à la broche numérique 3 de l'Arduino. L'Arduino lira l'impulsion de haute durée sur cette broche pour calculer la distance jusqu'à l'obstacle.
Voici un schéma de câblage simple pour illustrer les connexions :
				
					       HC - SR04         Arduino
         VCC ------------ 5V
         GND ------------ GND
         Trig ------------ Digital Pin 2
         Echo ------------ Digital Pin 3
				
			

Exemple de code

Voici un exemple de code Arduino de base pour vous aider à démarrer avec la mesure de distance à l'aide du HC-SR04 :
				
					const int trigPin = 2;
const int echoPin = 3;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH);
  float distance = duration * 0.0343 / 2;

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(500);
}
				
			
Dans la fonction de configuration, nous initialisons d'abord la communication série à un débit de 9600 bauds, ce qui nous permet de visualiser les mesures de distance dans le moniteur série Arduino. Ensuite, nous définissons la broche trigPin comme broche de sortie et la broche echoPin comme broche d'entrée.
Dans la fonction loop, nous commençons par régler la broche trigPin sur LOW pendant 2 microsecondes afin de garantir un démarrage propre. Ensuite, nous la réglons sur HIGH pendant 10 microsecondes afin de déclencher l'émetteur à ultrasons dans le HC-SR04. Après cela, nous réglons à nouveau la broche trigPin sur LOW.
La fonction pulseIn est ensuite utilisée pour mesurer la durée de l'impulsion de niveau haut sur l'echoPin. Cette durée représente le temps mis par les ondes ultrasonores pour aller jusqu'à l'obstacle et revenir. Nous calculons ensuite la distance à l'aide de la formule distance = durée * 0,0343 / 2, où 0,0343 est la vitesse du son en cm/μs et nous divisons par 2 car les ondes vont jusqu'à l'obstacle et reviennent.
Enfin, nous imprimons la distance calculée sur le moniteur série et ajoutons un délai de 500 millisecondes avant la mesure suivante.

Dans la fonction setup, nous initialisons d'abord la communication série à une vitesse de 9600 bauds, ce qui nous permet de visualiser les lectures de distance dans le Moniteur série d'Arduino. Ensuite, nous définissons la broche trigPin comme une broche de sortie et la broche echoPin comme une broche d'entrée.

Dans la fonction loop, nous commençons par mettre la broche trigPin à l'état LOW pendant 2 microsecondes pour garantir un démarrage propre. Ensuite, nous la mettons à l'état HIGH pendant 10 microsecondes pour déclencher l'émetteur ultrasonique du HC-SR04. Après cela, nous remettons la broche trigPin à l'état LOW.

La fonction pulseIn() est ensuite utilisée pour mesurer la durée de l'impulsion à l'état haut sur la broche echoPin. Cette durée représente le temps pris par les ondes ultrasonores pour faire l'aller-retour jusqu'à l'obstacle. Nous calculons ensuite la distance à l'aide de la formule distance = duration * 0.0343 / 2, où 0,0343 est la vitesse du son en cm/μs et nous divisons par 2 parce que les ondes font l'aller-retour vers l'obstacle.

Enfin, nous affichons la distance calculée dans le Moniteur série et ajoutons un délai de 500 millisecondes avant la mesure suivante.

Conseils

  1. Mesure précise de la durée :

Lorsque vous utilisez la fonction pulseIn(), il est important de noter qu'elle mesure la durée d'une impulsion. Dans le cas du HC-SR04, il s'agit du temps pendant lequel la broche Echo est à l'état haut. Pour garantir des mesures précises, assurez-vous qu'il n'y a pas d'autres interférences électriques susceptibles d'affecter la durée de l'impulsion. Sachez également que si l'obstacle est trop éloigné, l'impulsion peut expirer. Vous pouvez définir une valeur de délai d'attente dans la fonction pulseIn() pour gérer ces cas élégamment. Par exemple, long duration = pulseIn(echoPin, HIGH, 20000); où 20000 est la valeur du délai d'attente en microsecondes.

  1. Éviter les sources de bruit :

Les ondes ultrasoniques peuvent être affectées par des sources de bruit intense. Lorsque vous placez le HC-SR04 dans votre projet, évitez les zones où le bruit est intense, comme à proximité de haut-parleurs ou dans un environnement industriel très bruyant. Le bruit peut interférer avec les ondes ultrasoniques émises par le capteur, ce qui peut entraîner des mesures de distance inexactes. Si vous devez utiliser le capteur dans une zone bruyante, envisagez d'utiliser des matériaux insonorisants ou des boîtiers pour protéger le capteur du bruit.

Intégration Raspberry Pi

Attention à la tension

L'un des éléments clés à prendre en compte lors de l'intégration du HC-SR04 à un Raspberry Pi concerne les niveaux de tension. Les broches GPIO (General Purpose Input/Output) d'un Raspberry Pi ne peuvent accepter qu'une tension maximale de 3,3 V. Cependant, le HC-SR04 fonctionne sur 5 V, et la broche Echo du HC-SR04 peut émettre un signal de 5 V. Connecter un signal de 5 V directement à une broche GPIO du Raspberry Pi peut endommager le Pi.

Pour résoudre ce problème, vous pouvez utiliser un circuit diviseur de tension. Un simple diviseur de tension utilisant une résistance de 1 kΩ et une de 2 kΩ peut être utilisé pour convertir la sortie 5V de la broche Echo du HC-SR04 en un signal compatible 3,3V pour le Raspberry Pi. La formule pour calculer la tension de sortie V out d'un diviseur de tension est V out = V in × R 2 R 1 + R 2 , où V in est la tension d'entrée (5V dans ce cas), R 1 est la première résistance (1 kΩ), et R 2 est la seconde résistance (2 kΩ). En remplaçant par les valeurs, nous obtenons V out = 5 × 2000 1000 + 2000 ≈ 3,33 V , ce qui se trouve dans la plage de sécurité pour la broche GPIO du Raspberry Pi.

Câblage

  • VCC : Connectez la broche VCC du HC-SR04 à la broche 5V du Raspberry Pi. Cela permet d'alimenter le module capteur HC-SR04.

  • GND : la broche GND du HC-SR04 doit être connectée à la broche GND du Raspberry Pi afin d'établir une masse commune.
  • Trig : Connectez la broche Trig du HC-SR04 à la broche GPIO 17 du Raspberry Pi. Le Raspberry Pi utilisera cette broche pour envoyer l'impulsion de déclenchement de niveau haut de 10 μs au HC-SR04.
  • Echo : la broche Echo du HC-SR04, après être passée par le circuit diviseur de tension (résistances de 1 kΩ et 2 kΩ), est connectée à la broche GPIO 27 du Raspberry Pi. Le Raspberry Pi lira l'impulsion de haute durée sur cette broche pour calculer la distance.
Le câblage peut être résumé comme suit :
				
					       HC - SR04         Raspberry Pi
         VCC ------------ 5V
         GND ------------ GND
         Trig ------------ GPIO 17
         Echo (through voltage divider) ------------ GPIO 27
				
			

Code Python

Voici un exemple de code Python utilisant la bibliothèque RPi.GPIO pour interfacer le HC-SR04 avec un Raspberry Pi :
				
					import RPi.GPIO as GPIO
import time

# Set the GPIO mode
GPIO.setmode(GPIO.BCM)

# Define the pins
TRIG = 17
ECHO = 27

# Set up the pins
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def measure_distance():
    # Send a 10μs high - level pulse to trigger the sensor
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    # Wait for the echo to start
    while GPIO.input(ECHO)==0:
        pulse_start = time.time()

    # Wait for the echo to end
    while GPIO.input(ECHO)==1:
        pulse_end = time.time()

    pulse_duration = pulse_end - pulse_start
    distance = pulse_duration * 17150  # Speed of sound in cm/s divided by 2
    distance = round(distance, 2)

    return distance

try:
    while True:
        dist = measure_distance()
        print(f"Distance: {dist} cm")
        time.sleep(1)

except KeyboardInterrupt:
    print("Measurement stopped by User")
    GPIO.cleanup()

				
			

Dans ce code, nous importons d'abord les bibliothèques nécessaires : RPi.GPIO pour contrôler les broches GPIO du Raspberry Pi et time pour ajouter des délais. Nous configurons ensuite le mode GPIO sur BCM (numérotation des canaux SOC de Broadcom). Nous définissons les broches TRIG et ECHO, puis configurons la broche TRIG comme sortie et la broche ECHO comme entrée.

La fonction measure_distance est l'endroit où la magie opère. Elle envoie une impulsion à l'état haut de 10 µs à la broche TRIG pour déclencher le HC-SR04. Ensuite, elle attend que la broche ECHO passe à l'état haut (ce qui indique le début de l'écho) et enregistre l'heure de début. Elle attend ensuite que la broche ECHO repasse à l'état bas (ce qui indique la fin de l'écho) et enregistre l'heure de fin. La différence de temps entre le début et la fin est utilisée pour calculer la distance. La distance est calculée en multipliant la durée de l'impulsion par la vitesse du son en cm/s (34300 cm/s) et en divisant par 2 (puisque le son fait un aller-retour vers l'obstacle).

Dans le bloc try, nous mesurons continuellement la distance et l'affichons dans la console chaque seconde. Si l'utilisateur appuie sur Ctrl + C (KeyboardInterrupt), le programme nettoie les broches GPIO et se ferme proprement.

ESP32 Configuration

Affectation des broches

L'ESP32 est un microcontrôleur puissant doté de plusieurs broches GPIO (General Purpose Input/Output, entrée/sortie à usage général). Lorsque vous connectez le HC-SR04 à un ESP32, vous pouvez utiliser le 5 V de la broche VOUT de l'ESP32 pour alimenter le HC-SR04. Pour les broches Trig et Echo, vous pouvez les connecter à n'importe quelle broche GPIO disponible. Par exemple, vous pouvez connecter la broche Trig à la broche GPIO 14 et la broche Echo à la broche GPIO 15. Veillez toutefois à choisir des broches qui ne sont pas déjà utilisées par d'autres composants de votre projet.

Code Arduino IDE

Le code permettant d'utiliser le HC-SR04 avec un ESP32 dans l'IDE Arduino est assez similaire au code Arduino. Voici un exemple :
				
					const int trigPin = 14;
const int echoPin = 15;

void setup() {
  Serial.begin(115200);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH);
  float distance = duration * 0.0343 / 2;

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(500);
}

				
			

Dans la fonction setup, nous initialisons la communication série à une vitesse de 115200 bauds. Ensuite, nous définissons la broche trigPin comme une broche de sortie et la broche echoPin comme une broche d'entrée.

Dans la fonction loop, le processus de déclenchement du HC-SR04 et de mesure de la distance est le même que dans le code Arduino. Nous envoyons une impulsion à l'état haut de 10 µs à la broche trigPin pour déclencher le capteur, mesurons la durée de l'impulsion à l'état haut sur la broche echoPin à l'aide de pulseIn et calculons la distance.

Cependant, lorsque vous utilisez l'ESP32 dans l'IDE Arduino, veillez à sélectionner la carte ESP32 appropriée dans l'IDE. De plus, si vous prévoyez d'intégrer l'ESP32 à des fonctionnalités IoT (Internet des objets) telles que le WiFi ou le Bluetooth, vous devez gérer l'initialisation de ces fonctionnalités dans votre code. Par exemple, si vous souhaitez envoyer les données de distance via WiFi, vous devrez ajouter du code pour vous connecter à un réseau WiFi et configurer un serveur ou un client pour envoyer les données.

Idées de projets créatifs utilisant le HC-SR04

Robot évitant les obstacles

Le robot évitant les obstacles est une application fascinante et pratique du module capteur à ultrasons HC-SR04. Sa fonction principale est de se déplacer en toute sécurité dans son environnement en détectant les obstacles sur son chemin. Pour ce faire, plusieurs capteurs HC-SR04 sont placés stratégiquement sur le robot.

Les capteurs sont configurés pour détecter les obstacles provenant de différentes directions. Par exemple, un ensemble de capteurs est placé à l'avant du robot pour détecter tout obstacle se trouvant directement sur son chemin vers l'avant. De plus, des capteurs sont placés sur les côtés du robot pour détecter les obstacles qui pourraient s'approcher par les côtés. Lorsqu'un obstacle est détecté, le système de contrôle du robot, qui est souvent basé sur un microcontrôleur comme Arduino, calcule la distance jusqu'à l'obstacle à l'aide des données fournies par les capteurs HC-SR04.

Sur la base de ces informations de distance, le système de contrôle détermine ensuite l'action appropriée à entreprendre pour éviter l'obstacle. Cela implique généralement de diriger les moteurs de manière à modifier la direction du robot. Par exemple, si un obstacle est détecté sur le côté gauche du robot, le système de contrôle peut ordonner au moteur gauche de ralentir ou de faire marche arrière tandis que le moteur droit continue de fonctionner à une vitesse normale. Cela amène le robot à tourner vers la droite, s'éloignant ainsi de l'obstacle.

Pour réaliser ce projet, vous aurez besoin de plusieurs composants clés. Un Arduino sert de cerveau à l'opération. Il traite les données reçues des capteurs HC-SR04 et envoie des commandes aux moteurs. Les moteurs sont nécessaires pour entraîner les roues du robot, lui permettant ainsi de se déplacer. Un pilote de moteur, tel que le L298N, est essentiel pour contrôler les moteurs. Le L298N peut gérer les besoins en courant relativement élevés des moteurs et permet à l'Arduino de contrôler efficacement la vitesse et la direction des moteurs. Et bien sûr, plusieurs capteurs HC-SR04 sont nécessaires pour la détection avant et latérale. En combinant ces composants et en écrivant le code approprié pour les contrôler, vous pouvez créer un robot capable d'éviter les obstacles et pleinement fonctionnel.

Poubelle intelligente

La poubelle intelligente est un excellent exemple de la manière dont le module capteur à ultrasons HC-SR04 peut être utilisé pour améliorer la fonctionnalité d'objets du quotidien. Dans cette application, la poubelle intelligente est conçue pour disposer d'une fonction d'ouverture automatique du couvercle. Cette fonction est déclenchée par la présence d'une personne s'approchant de la poubelle.

Le capteur HC-SR04 est monté sur la poubelle de manière à pouvoir détecter la distance qui la sépare de tout objet situé devant elle. Lorsqu'une personne s'approche de la poubelle, le capteur mesure la distance entre la poubelle et la personne. Si la distance mesurée est inférieure à un seuil prédéfini (par exemple, 20 cm), cela indique qu'une personne est suffisamment proche de la poubelle pour pouvoir l'utiliser. À ce stade, le capteur envoie un signal à un servomoteur.

Le servomoteur est relié au couvercle de la poubelle et est chargé de l'ouvrir et de le fermer. Lorsqu'il reçoit le signal du capteur HC-SR04, le servomoteur tourne pour ouvrir le couvercle. Ce fonctionnement mains libres est non seulement pratique pour l'utilisateur, mais il permet également de garder la poubelle propre et hygiénique, car il n'est pas nécessaire de toucher directement le couvercle.

Lors de l'écriture du code pour ce projet, le réglage du seuil de distance est une étape cruciale. Vous devez calibrer soigneusement cette valeur en fonction des exigences spécifiques de votre poubelle intelligente. Si le seuil est trop élevé, le couvercle peut s'ouvrir inutilement lorsque quelqu'un se trouve encore à une certaine distance de la poubelle. À l'inverse, si le seuil est trop bas, le couvercle peut ne pas s'ouvrir à temps lorsque l'utilisateur s'approche. Un seuil de distance bien calibré garantit le fonctionnement optimal de la poubelle intelligente.

Moniteur de niveau d'eau

Le moniteur de niveau d'eau est une application pratique du module capteur à ultrasons HC – SR04, en particulier dans les situations où il est nécessaire de surveiller le niveau d'eau dans un réservoir. Il peut s'agir d'un réservoir de stockage d'eau domestique, d'un réservoir de stockage d'eau industriel ou même d'un aquarium.

Le capteur HC-SR04 est installé au-dessus du réservoir d'eau. Il émet des ondes ultrasoniques vers le bas, en direction de la surface de l'eau. Ces ondes se propagent dans l'air et rebondissent lorsqu'elles atteignent la surface de l'eau. Le capteur mesure alors le temps nécessaire aux ondes pour atteindre la surface de l'eau et revenir. En utilisant la vitesse connue du son dans l'air, il est possible de calculer la distance entre le capteur et la surface de l'eau.

Dans de nombreux cas, le moniteur de niveau d'eau est intégré à un système IoT (Internet des objets). Il peut par exemple être connecté à une application Blynk. Les données calculées sur le niveau d'eau sont envoyées à l'application, ce qui permet aux utilisateurs de surveiller le niveau d'eau à distance. Cela est particulièrement utile pour les applications industrielles où la surveillance en temps réel des niveaux d'eau est cruciale pour le bon fonctionnement des processus.

Un aspect important à prendre en compte lors de la mise en place d'un moniteur de niveau d'eau est l'étalonnage. Comme le capteur est installé à une certaine hauteur au-dessus de la base du réservoir, cette hauteur doit être prise en compte dans les calculs de distance. Par exemple, si le capteur est installé à 50 cm au-dessus de la base du réservoir et que la distance calculée entre le capteur et la surface de l'eau est de 30 cm, le niveau d'eau réel dans le réservoir est de 20 cm. En calibrant avec précision la hauteur du capteur et en effectuant les calculs nécessaires, vous pouvez vous assurer que le moniteur de niveau d'eau fournit des lectures précises et fiables.

Dépannage des problèmes courants

Lectures incohérentes

L'un des problèmes les plus courants rencontrés par les utilisateurs du module capteur à ultrasons HC-SR04 est l'incohérence des mesures. Cela peut être très frustrant, en particulier lorsque vous dépendez de mesures de distance précises pour votre projet.

Cause : réflexions multivoies ou alimentation instable

Les réflexions multivoies se produisent lorsque les ondes ultrasonores émises par le capteur rebondissent sur plusieurs surfaces avant d'atteindre le récepteur. Cela peut se produire dans des environnements complexes comportant de nombreux objets ou dans des zones présentant de grandes surfaces réfléchissantes. Par exemple, dans une pièce contenant de nombreux meubles et miroirs, les ondes ultrasonores peuvent rebondir sur les meubles, les murs et les miroirs avant d'être détectées par le récepteur. Il est alors difficile pour le capteur de calculer avec précision la distance par rapport à l'objet visé, ce qui entraîne des lectures incohérentes.

Une alimentation électrique instable est un autre facteur responsable. Si l'alimentation électrique du HC-SR04 n'est pas stable, cela peut entraîner un dysfonctionnement du capteur. Les fluctuations de tension peuvent affecter le bon fonctionnement de l'émetteur et du récepteur ultrasoniques, ce qui entraîne des mesures de distance erronées. Par exemple, si vous utilisez une batterie faible ou un adaptateur secteur avec une mauvaise régulation de tension, le capteur peut ne pas recevoir une alimentation électrique constante de 5 V, ce qui peut affecter ses performances.

Solution : ajoutez un boîtier de protection pour le capteur et utilisez une source d'alimentation régulée de 5 V.

L'ajout d'un boîtier de protection autour du capteur peut aider à réduire l'impact des réflexions multivoies. Le boîtier peut être conçu pour diriger les ondes ultrasonores de manière plus ciblée, réduisant ainsi les risques que les ondes rebondissent sur des surfaces indésirables. Un simple boîtier en carton ou en plastique avec une ouverture étroite à l'avant peut être efficace à cet égard.

L'utilisation d'une source d'alimentation régulée de 5 V est essentielle pour un fonctionnement stable. Une alimentation électrique avec régulation de tension intégrée, telle qu'un adaptateur mural de haute qualité ou un module d'alimentation à tension régulée, garantit que le HC-SR04 reçoit une tension constante de 5 V. Cela permet d'éliminer tout problème causé par les fluctuations de tension et d'améliorer la précision et la cohérence globales des lectures du capteur.

Aucun signal de sortie

Un autre problème courant survient lorsque le HC-SR04 ne parvient pas à produire un signal de sortie. Cela peut être le signe de plusieurs problèmes différents, et il est important de vérifier systématiquement chaque possibilité pour que le capteur fonctionne à nouveau.
Vérification : vérifier le câblage (en particulier VCC/GND), le diviseur de tension pour Raspberry Pi et la logique du code pour le timing du déclenchement/écho.
Tout d'abord, vérifiez soigneusement le câblage. Assurez-vous que les broches VCC et GND sont correctement connectées à la source d'alimentation et à la terre, respectivement. Une connexion desserrée ou incorrecte peut empêcher le capteur de s'allumer correctement ou provoquer des courts-circuits électriques qui perturbent le fonctionnement normal du module. Dans de nombreux cas, une simple inspection visuelle et une reconnexion des fils peuvent résoudre le problème.

Si vous utilisez le HC-SR04 avec un Raspberry Pi, n'oubliez pas de vérifier le circuit diviseur de tension. Comme mentionné précédemment, les broches GPIO du Raspberry Pi ne peuvent gérer que 3,3 V, et un diviseur de tension est souvent utilisé pour convertir la sortie 5 V de la broche Echo du HC-SR04 en un signal compatible 3,3 V. Si les composants du diviseur de tension (généralement des résistances) sont endommagés ou mal connectés, le Raspberry Pi peut ne recevoir aucun signal de sortie.

La logique du code pour le timing du déclenchement/écho est également un élément essentiel à vérifier. Assurez-vous que le code envoie le signal de déclenchement correct (une impulsion de niveau haut de 10 μs) à la broche Trig et qu'il mesure correctement la durée de l'impulsion de niveau haut sur la broche Echo. Un code incorrect peut empêcher le déclenchement du capteur ou entraîner une mauvaise interprétation du signal d'écho par le microcontrôleur, ce qui se traduit par une absence de sortie ou des calculs de distance incorrects. Par exemple, si les temps de retard dans le code sont mal réglés, cela peut perturber la séquence correcte de déclenchement du capteur et de lecture de l'écho.

Erreurs hors plage

Des erreurs de sortie de plage peuvent se produire lorsque l'objet détecté est trop proche ou trop éloigné du capteur HC-SR04. Cela peut causer des problèmes dans votre projet, en particulier si votre code n'est pas correctement équipé pour gérer de telles situations.
Solution : implémenter un délai d'attente (par exemple, 38 ms pour l'absence d'écho) et gérer correctement les valeurs 0 ou ∞ dans le code.
La mise en place d'un délai d'attente dans votre code est un moyen utile de gérer les cas où l'objet est trop éloigné pour que le capteur puisse détecter un écho dans un délai raisonnable. Par exemple, si aucun écho n'est reçu dans les 38 ms, cela indique clairement que l'objet se trouve hors de la portée du capteur. Dans votre code, vous pouvez configurer un minuteur qui démarre lorsque le signal de déclenchement est envoyé et s'arrête lorsqu'un écho est reçu. Si le minuteur atteint la valeur de délai d'attente sans recevoir d'écho, vous pouvez supposer que l'objet est hors de portée et prendre les mesures appropriées, telles que l'affichage d'un message d'erreur ou la définition d'une valeur de distance par défaut.

Il est également important de gérer correctement les valeurs 0 ou ∞ (infini) dans le code. Une valeur de distance de 0 peut indiquer que le capteur est trop proche d'un objet, plus proche que sa portée minimale détectable. Dans ce cas, vous pouvez définir un seuil de distance minimale dans votre code et ajuster la valeur de distance en conséquence. De même, si le code calcule une valeur de distance extrêmement grande (proche de l'infini), cela indique probablement une erreur, telle qu'un problème de détection d'écho ou des calculs incorrects. Votre code doit être capable de gérer ces cas de manière appropriée, par exemple en enregistrant un message d'erreur ou en essayant de mesurer à nouveau la distance.

HC-SR04 vs autres capteurs de distance

vs. Capteurs infrarouges

Tableau 1 : Capteurs HC-SR04 (Ultrasons) vs Infrarouges

HC-SR04

Portée : 2 cm–400 cm (Extrait 1, 6)

Précision : ±3 mm (conditions idéales, Extrait 1)

Tension : 5 V (fixe, Extrait 1)

Avantages : Pas d'interférence lumineuse, portée plus longue (Extrait 5)

Inconvénients : Précision réduite à courte portée, sensibilité aux bruits ultrasonores (Extrait 1)

Infrarouge

Portée : Généralement <100 cm (Extrait 1, 5)

Précision : ±5 mm–1 cm (affectée par la couleur/le matériau, Extrait 5)

Tension : 3,3 V–5 V (flexible, Extrait 5)

Avantages : Petite taille, faible coût (Extrait 1)

Inconvénients : Interférence de la lumière ambiante / de la couleur (Extrait 5)

Le tableau 1 met en évidence le compromis entre la détection longue portée robuste (2 cm à 400 cm) du HC-SR04 et la taille compacte/le faible coût des capteurs infrarouges, en soulignant l'immunité du HC-SR04 aux interférences lumineuses par rapport à la vulnérabilité des capteurs infrarouges à la lumière ambiante et à la couleur des matériaux.

vs. Capteurs laser

Tableau 2 : HC-SR04 vs Laser/ToF (VL53L0X)

HC-SR04

Portée : 2 cm–400 cm (Extrait 1, 4)

Précision : ±3 mm (Extrait 4)

Taux de rafraîchissement : 60 ms (Extrait 4)

Coût : ~2 $–3 $ (Extrait 1)

Faiblesse : angle de cône de 15°, bruit environnemental (Extrait 1)

Laser/ToF (VL53L0X)

Portée : 5 cm–200 cm (Extrait 1, 3)

Précision : ±1 mm–3 mm (Extrait 3)

Taux de rafraîchissement : 20 ms (plus rapide, Extrait 4)

Coût : ~10 $–15 $ (Extrait 1)

Force : faisceau étroit de 5°, résistant aux interférences (Extrait 3)

Le tableau 2 compare le rapport coût-efficacité (2 à 3 dollars) et la large portée (400 cm) du HC-SR04 à la précision supérieure (±1 mm) et à la vitesse (taux de mise à jour de 20 ms) des capteurs laser/ToF, idéaux pour les applications nécessitant une grande précision dans des environnements contrôlés.

vs. États-Unis - Module 100

Tableau 3 : HC-SR04 vs US-100 (Ultrasons)

HC-SR04

Portée : 2 cm–400 cm (Extrait 2, 6)

Précision : ±3 mm (nominale, Extrait 2)

Tension : 5 V uniquement (Extrait 6)

Caractéristique : GPIO uniquement, pas de compensation de température (Extrait 3)

Problème : Valeurs aléatoires au-delà de 400 cm (Extrait 6)

US-100

Portée : 2 cm–450 cm (Extrait 2, 3)

Précision : ±2 mm (meilleure lors des tests, Extrait 3)

Tension : 3,3 V–5 V (Extrait 3)

Caractéristique : Compensation de température (mode UART), codes d'erreur (Extrait 6)

Inconvénient : Coût plus élevé (5 $–8 $), configuration UART requise (Extrait 3)

Le tableau 3 présente la portée améliorée (450 cm), la meilleure précision (±2 mm) et la compatibilité 3,3 V/5 V du US-100 par rapport à la simplicité du HC-SR04 (GPIO uniquement), soulignant la fonction de compensation de température du US-100 pour une utilisation industrielle à un coût plus élevé (5 à 8 dollars).

Techniques avancées et optimisations

Calibrage multicapteur

Pour les applications plus complexes, en particulier dans les scénarios où une vue à 360° est essentielle, l'utilisation de plusieurs capteurs HC-SR04 peut changer la donne. Dans une application robotique, par exemple, le fait de disposer de plusieurs capteurs HC-SR04 placés stratégiquement autour du corps du robot peut lui permettre de détecter les obstacles dans toutes les directions, offrant ainsi une vue complète de son environnement.

Cependant, lorsque plusieurs capteurs sont utilisés, les interférences peuvent devenir un problème important. Les interférences se produisent lorsque les ondes ultrasonores émises par un capteur interfèrent avec le fonctionnement d'un autre capteur. Cela peut entraîner des lectures inexactes, car les capteurs peuvent interpréter à tort les ondes interférentes comme des échos provenant d'obstacles réels.

Plusieurs techniques peuvent être utilisées pour atténuer les interférences de diaphonie. Une approche consiste à multiplexer les capteurs dans le temps. Cela implique d'activer les capteurs un par un, en laissant un intervalle de temps suffisant entre chaque activation. Par exemple, si vous disposez de quatre capteurs HC-SR04 sur un robot, vous pouvez activer le capteur 1, attendre qu'il termine son cycle de mesure, puis activer le capteur 2, et ainsi de suite. Vous vous assurez ainsi que les ondes ultrasonores d'un capteur ne se superposent pas à celles d'un autre capteur, ce qui réduit les risques de diaphonie.

Une autre technique consiste à utiliser des matériaux de blindage. Placer une barrière physique, telle qu'une fine feuille de métal ou un matériau absorbant le son, entre les capteurs peut aider à empêcher les ondes ultrasonores d'un capteur d'atteindre un autre. Cela peut être particulièrement utile dans les situations où les capteurs sont placés à proximité les uns des autres.

L'étalonnage est également crucial lorsque vous utilisez plusieurs capteurs. Chaque capteur peut avoir des caractéristiques légèrement différentes, telles que la sensibilité ou l'angle du faisceau. En étalonnant les capteurs, vous pouvez tenir compte de ces différences et vous assurer que les données de tous les capteurs sont cohérentes. Cela peut impliquer de mesurer la distance par rapport à un objet connu avec chaque capteur et d'ajuster les lectures en fonction des différences.

Filtrage du bruit

Dans certains environnements, les mesures du HC-SR04 peuvent être instables, avec de légères fluctuations de la distance mesurée pouvant être causées par divers facteurs tels que le bruit électrique, de légers courants d'air ou des interférences provenant d'autres appareils électroniques à proximité. Pour remédier à ce problème, des techniques de filtrage du bruit peuvent être appliquées.

Une méthode couramment utilisée est le filtre à moyenne mobile. Le filtre à moyenne mobile fonctionne en calculant la moyenne d'une série de lectures de distance consécutives. Par exemple, au lieu d'utiliser une seule lecture de distance, vous pouvez prendre les 5 dernières lectures et calculer leur moyenne. Cela permet de lisser les lectures instables, car les petites fluctuations ont tendance à s'annuler mutuellement lorsqu'elles sont moyennées. En Python, la mise en œuvre d'un filtre à moyenne mobile simple pour les lectures de distance HC-SR04 pourrait ressembler à ceci :
				
					distance_readings = []
num_readings = 5

def moving_average_filter(new_distance):
    distance_readings.append(new_distance)
    if len(distance_readings) > num_readings:
        distance_readings.pop(0)
    return sum(distance_readings) / len(distance_readings)

				
			

Une autre méthode de filtrage efficace est le filtre médian. Le filtre médian remplace chaque mesure de distance par la valeur médiane d'un ensemble de mesures consécutives. La médiane est moins sensible aux valeurs extrêmes ou aberrantes que la moyenne. Par exemple, si vous avez un ensemble de 5 mesures de distance [20, 22, 18, 50, 21], la valeur médiane est 21. En utilisant le filtre médian, la valeur aberrante de 50 n'affecterait pas de manière significative le résultat filtré. Dans Arduino, la mise en œuvre d'un filtre médian pourrait être la suivante :

				
					const int numReadings = 5;
int readings[numReadings];
int readIndex = 0;
int total = 0;
int averageDistance = 0;

void addReading(int newReading) {
  total = total - readings[readIndex];
  readings[readIndex] = newReading;
  total = total + readings[readIndex];
  readIndex = readIndex + 1;
  if (readIndex >= numReadings) {
    readIndex = 0;
  }
}

int getMedian() {
  int sortedReadings[numReadings];
  for (int i = 0; i < numReadings; i++) {
    sortedReadings[i] = readings[i];
  }
  for (int i = 0; i < numReadings - 1; i++) {
    for (int j = i + 1; j < numReadings; j++) {
      if (sortedReadings[i] > sortedReadings[j]) {
        int temp = sortedReadings[i];
        sortedReadings[i] = sortedReadings[j];
        sortedReadings[j] = temp;
      }
    }
  }
  return sortedReadings[numReadings / 2];
}

				
			

Modes de travail personnalisés

Certaines des versions les plus récentes du module capteur à ultrasons HC-SR04 offrent une flexibilité supplémentaire grâce à des modes de fonctionnement personnalisés. Ces modes peuvent être configurés via des réglages de résistance, ce qui permet d'utiliser différents protocoles de communication et caractéristiques opérationnelles.
L'un de ces modes est le mode GPIO (General Purpose Input/Output), qui est le mode standard pour la plupart des applications de base. Dans ce mode, le module fonctionne comme décrit dans les sections précédentes, les broches Trig et Echo étant utilisées respectivement pour déclencher la mesure de distance et recevoir le signal d'écho.

Cependant, certains modèles HC-SR04 proposent également les modes UART (Universal Asynchronous Receiver/Transmitter) et I2C (Inter-Integrated Circuit). En mode UART, le module peut communiquer avec un microcontrôleur à l'aide d'une communication série. Cela peut être utile dans les applications où un protocole de communication série plus standardisé est préférable, comme dans certains systèmes de contrôle industriels ou lors de l'intégration avec des appareils dotés d'interfaces UART intégrées.

Le mode I2C, quant à lui, permet la communication via un bus I2C. Cela est avantageux dans les configurations multi-appareils où plusieurs capteurs ou composants doivent communiquer avec un seul microcontrôleur. Le bus I2C permet une utilisation plus efficace des broches du microcontrôleur, car plusieurs appareils peuvent partager le même bus à deux fils (SDA – Serial Data Line et SCL – Serial Clock Line).

Pour configurer le module pour ces modes personnalisés, vous devez vous reporter à la documentation du module afin de déterminer les valeurs de résistance appropriées. Par exemple, pour activer le mode UART, vous devrez peut-être connecter une résistance spécifique entre deux broches du module. Une fois les résistances correctement configurées, le module peut être programmé pour communiquer dans le mode souhaité. Cela peut impliquer d'écrire un code différent dans votre microcontrôleur pour gérer les protocoles de communication UART ou I2C. Par exemple, dans un projet Raspberry Pi utilisant le HC-SR04 configuré en I2C, vous utiliseriez la bibliothèque smbus en Python pour communiquer avec le capteur via le bus I2C.

HC-SR04 : temporisation, adaptation de niveau et sources d'erreur

Le HC-SR04 estime la distance par le temps aller-retour d’une salve ultrasonore selon distance = temps d'écho × vitesse du son / 2. Les variantes peuvent différer ; vérifiez alimentation et niveau Echo et adaptez une sortie de 5 V avant une entrée limitée à 3,3 V.

  • Générer le déclenchement : fournir la largeur exigée par le module précis et mesurer l’impulsion Echo.
  • Fixer un délai maximal : arrêter l’attente sans écho afin de ne pas bloquer le logiciel.
  • Corriger la vitesse : la température modifie la conversion et l’air mobile ajoute une erreur.
  • Respecter la géométrie : surfaces molles, inclinées, étroites ou proches absorbent ou dévient la salve.
  • Éviter les interférences : décaler plusieurs capteurs et rejeter les sauts impossibles par un filtrage borné.

Conclusion

Le module capteur à ultrasons HC – SR04 reste un incontournable dans les projets électroniques en raison de son prix abordable, de sa facilité d'utilisation et de sa polyvalence. En maîtrisant son principe de fonctionnement, en l'interfaçant avec des microcontrôleurs courants et en explorant des applications créatives, vous pouvez exploiter tout son potentiel, de la mesure de distance de base aux systèmes IoT complexes. Vous avez des questions ou des idées de projets ? Partagez-les avec nous via le formulaire flottant ! 🛠️

À Propos De L'Auteur

Picture of Aidan Taylor
Aidan Taylor

Je suis Aidan Taylor et j'ai plus de 10 ans d'expérience dans le domaine de l'ingénierie inverse des PCB, de la conception des PCB et du déverrouillage IC.

Partager

Après Recommandée

Besoin D'Aide?

Défiler vers le haut

Instant Quote

Devis Immédiat