Utilisation du capteur HC-SR04 2020 en modes Classique, I2C, et UART

Sommaire

Présentation du capteur HC-SR04 version 2020

Le HC-SR04 2020 est une évolution moderne du célèbre capteur ultrasonique HC-SR04, largement utilisé dans les projets électroniques et Arduino pour mesurer des distances avec précision. Toujours basé sur le principe de l’écho ultrasonique, il émet une onde sonore à haute fréquence et mesure le temps nécessaire pour que celle-ci revienne après avoir rencontré un obstacle.

Mais cette version “2020” va plus loin que le modèle classique. Elle conserve bien sûr le mode traditionnel Trigger/Echo, mais intègre également des modes de communication avancés comme I2C et UART, offrant ainsi une grande flexibilité pour s’adapter à différents types de projets, du plus simple au plus complexe.

Grâce à cette polyvalence, le HC-SR04 2020 peut être utilisé aussi bien dans :

  • des montages Arduino basiques,
  • des systèmes embarqués plus compacts,
  • ou encore des projets nécessitant une communication série ou un bus partagé.

 

Capteur à ultrasons HC-SR04 2020
Capteur à ultrasons HC-SR04 2020
  1. Modèle du capteur à ultrasons: HC-SR04
  2. Version : 2020
  3. Zone de configuration : permet de configurer le capteur en mode CLASSIQUE, I2C, ou UART.

🎯 Objectif de cet article

Dans cet article, nous allons explorer en détail l’utilisation du HC-SR04 2020 avec une carte Arduino Uno.

👉 Nous verrons pas à pas :

  • le montage du capteur sur la carte,
  • et sa programmation dans ses trois modes de fonctionnement :
    • Mode classique (Trigger / Echo)
    • Mode I2C
    • Mode UART

Chaque mode sera expliqué simplement, avec du code et des exemples concrets, afin que tu puisses choisir celui qui correspond le mieux à ton projet.

Montage et programmation du HC-SR04 2020

Nous allons configurer et tester le capteur HC-SR04 version 2020 avec une Arduino Uno, afin de mesurer des distances en mode CLASSIQUE, I2C et UART. Les mesures seront ensuite affichées dans le Moniteur série de l’IDE Arduino.

Matériel nécessaire :

  • 1 Carte Arduino UNO

  • 1 Capteur HC-SR04 2020 

  • 1 Breadboard 400 points
  • Câble USB Type C

  • Câbles de connexion M-M 10 cm

Montage et programmation Mode Classique

Nous allons configurer et tester le capteur HC-SR04 version 2020 avec une carte Arduino Uno afin de mesurer des distances en mode classique (Trigger/Echo). Les valeurs mesurées seront ensuite affichées dans le moniteur série de l’IDE Arduino.

Librairies nécessaires

  • Aucune

Configuration matérielle :

Dans le mode CLASSIQUE, aucune modification du capteur HC-SR04 2020 n’est à prévoir.

Configuration du HC-SR04 2020 en mode CLASSIQUE : R4 et R5 non soudés

Le montage

Schéma de montage du capteur HC-SR04 2020 en mode UART avec la carte Arduino UNO
Schéma de montage du capteur HC-SR04 2020 en mode UART avec la carte Arduino UNO

Tableau récapitulatif

Arduino UnoCapteur HC-SR04 2020 CLASSIQUE
5VVCC
GNDGND
D7ECHO
D8TRIG

Code Arduino

 Le code Arduino ci-dessous permet de mesurer la distance en centimètres (cm) et de l’afficher dans le moniteur série à l’aide d’un capteur HC-SR04 2020 utilisé en mode classique (Trigger/Echo) :

				
					// Définition des broches
const int echoPin = 7;
const int trigPin = 8;

// Variables
long duree;
float distance;

void setup() {
  // Configuration des broches
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  Serial.begin(9600); // Initialisation du moniteur série de l'IDE Arduino
  Serial.println("HC-SR04 MODE CLASSIQUE");
}

void loop() {
  // Nettoyer le trig
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Envoyer une impulsion de 10µs
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Lire le temps de retour
  duree = pulseIn(echoPin, HIGH);

  // Calcul de la distance en cm
  distance = duree * 0.034 / 2;

  // Affichage de la distance en mm dans le moniteur série
  Serial.print("Distance : ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(1000); // pause
}
				
			

Le résultat attendu

Affichage des mesures du HC-SR04 dans le moniteur série Arduino
Affichage des mesures du HC-SR04 dans le moniteur série Arduino

Montage et programmation en mode I2C

Nous allons configurer et tester le capteur HC-SR04 version 2020 avec une carte Arduino Uno afin de mesurer des distances en mode I2C. Les valeurs mesurées seront ensuite affichées dans le moniteur série de l’IDE Arduino.

Librairies nécessaires

  • Wire.h  (inclus par défaut dans l’IDE Arduino)

Configuration matérielle :

Pour activer le mode I2C, il est nécessaire d’ajouter une résistance R4 de 10 kΩ au format SMD 0603 sur le module HC-SR04 2020. L’emplacement R5, quant à lui, doit rester non soudé.

Rassurez-vous : si vous choisissez ce modèle via la fiche produit du HC-SR04 2020, nous réalisons cette configuration pour vous.

Configuration du HC-SR04 2020 en mode I2C
Configuration du HC-SR04 2020 en mode I2C : R4 soudé et R5 libre

Le montage

Schéma de montage du capteur HC-SR04 2020 en mode I2C avec la carte Arduino UNO
Schéma de montage du capteur HC-SR04 2020 en mode I2C avec la carte Arduino UNO

Tableau récapitulatif

Arduino UnoCapteur HC-SR04 2020 I2C
5VVCC
GNDGND
A4ECHO/SDA
A5TRIG/SCL

Code Arduino

 Le code Arduino ci-dessous permet de mesurer la distance en centimètres (cm) et de l’afficher dans le moniteur série à l’aide d’un capteur HC-SR04 2020 utilisé en mode I2C :

				
					#include <Wire.h>

long distance;

void setup() {
  Wire.begin();// Initialisation du capteur HC-SR04 en mode I2C
  Serial.begin(9600); // Initialisation du moniteur série de l'IDE Arduino
  Serial.println("HC-SR04 MODE I2C");
}

void loop() {
  //  Envoi de la commande
  uint32_t mesure;
  Wire.beginTransmission(0x57);
  Wire.write(0x01);
  Wire.endTransmission();
  delay(120);
  // Lecture de la réponse
  Wire.requestFrom(0x57, 3);
  mesure  = Wire.read(); mesure <<= 8;
  mesure |= Wire.read(); mesure <<= 8;
  mesure |= Wire.read();
  distance = mesure / 1000;
  // Affichage de la distance en mm dans le moniteur série
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" mm");
  delay(1000);
}



				
			

Le résultat attendu

Affichage des mesures de distances en I2C du HC-SR04 dans le moniteur série
Affichage des mesures de distances en I2C du HC-SR04 dans le moniteur série

Montage et programmation en mode UART

Nous allons configurer et tester le capteur HC-SR04 version 2020 avec une carte Arduino Uno afin de mesurer des distances en mode UART. Les valeurs mesurées seront ensuite affichées dans le moniteur série de l’IDE Arduino.

Librairies nécessaires

  • SoftwareSerial.h (inclus par défaut dans l’IDE Arduino)

Configuration matérielle :

Pour activer le mode UART, il est nécessaire d’ajouter une résistance R5 de 10 kΩ au format SMD 0603 sur le module HC-SR04 2020. L’emplacement R4, quant à lui, doit rester non soudé.

Rassurez-vous : si vous choisissez ce modèle via la fiche produit du HC-SR04 2020, nous réalisons cette configuration pour vous.

Configuration du HC-SR04 2020 en mode UART
Configuration du HC-SR04 2020 en mode UART : R5 soudé et R4 libre

Le montage

Schéma de montage du capteur HC-SR04 2020 en mode UART avec la carte Arduino UNO
Schéma de montage du capteur HC-SR04 2020 en mode UART avec la carte Arduino UNO

Tableau récapitulatif

Arduino UnoCapteur HC-SR04 2020 UART
5VVCC
GNDGND
D7ECHO/TX
D8TRIG/RX

Code Arduino

 Le code Arduino ci-dessous permet de mesurer la distance en centimètres (cm) et de l’afficher dans le moniteur série à l’aide d’un capteur HC-SR04 2020 utilisé en mode UART :

				
					#include <SoftwareSerial.h>

SoftwareSerial sonar(7, 8); // RX, TX

byte buffer[3];

void setup() {
  Serial.begin(9600); // Initialisation du moniteur série de l'IDE Arduino
  sonar.begin(9600); // Initialisation du capteur HC-SR04 en mode UART

  Serial.println("HC-SR04 MODE UART");
}

void loop() {

  //  Envoi de la commande
  sonar.write(0xA0);

  delay(100); // attendre la mesure
  //  Lecture de la réponse (3 bytes)
  if (sonar.available() >= 3) {

    buffer[0] = sonar.read(); // BYTE_H
    buffer[1] = sonar.read(); // BYTE_M
    buffer[2] = sonar.read(); // BYTE_L

    long distance = ((long)buffer[0] << 16) |
                    ((long)buffer[1] << 8) |
                    buffer[2];

    distance = distance / 1000; // en mm
    // Affichage de la distance en mm dans le moniteur série
    Serial.print("Distance: ");
    Serial.print(distance);
    Serial.println(" mm");
  }

  delay(1000);
}
				
			

Le résultat attendu

Affichage des mesures UART du HC-SR04 dans le moniteur série Arduino
Affichage des mesures UART du HC-SR04 dans le moniteur série Arduino

Conclusion

En conclusion, vous avez appris à câbler et programmer le HC-SR04 2020 avec une carte Arduino Uno dans ses trois modes de fonctionnement : classique (Trigger/Echo), I2C et UART, tout en affichant les mesures de distance directement dans le moniteur série. Grâce à ces bases solides, vous pouvez désormais réaliser de nombreux projets, comme un télémètre numérique, un robot éviteur d’obstacles, un système de stationnement assisté, un détecteur de niveau (eau, réservoir) ou encore des interfaces interactives sans contact.

Bonjour ! 🌟 Rejoignez notre newsletter pour ne rien manquer.

Recevez nos offres spéciales et les derniers articles directement dans votre boîte de réception

Nous ne faisons pas de spam, promis ! Consultez notre politique de confidentialité pour en savoir plus.

Panier
Retour en haut