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é.
- Modèle du capteur à ultrasons: HC-SR04
- Version : 2020
- 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
1 Câble USB Type C
Câbles de connexion M-M 10 cm
-
Capteur Ultrason HC-SR04 V2 (2020) – Interface I2C ou UART pour Arduino et ESP32
4,99 € (4,16 € HT)
Vous économisez Ajouter au panier -
Breadboard 400 Points pour Arduino – Prototypage rapide sans soudure
4,99 € (4,16 € HT)
Vous économisez Ajouter au panier -
Câble USB Type C pour Arduino et ESP32 – Transfert Fiable et Rapide pour Projets Créatifs
4,99 € (4,16 € HT)
Vous économisez Ajouter au panier -
Carte UNO R3 – Microcontrôleur ATmega328 – compatible Arduino
8,99 € (7,49 € HT)
Vous économisez Ajouter au panier -
Lot de 40 Câbles Dupont mâle-mâle de 10cm pour Arduino
4,99 € (4,16 € HT)
Vous économisez Ajouter au panier
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.
Le montage
Tableau récapitulatif
| Arduino Uno | Capteur HC-SR04 2020 CLASSIQUE |
|---|---|
| 5V | VCC |
| GND | GND |
| D7 | ECHO |
| D8 | TRIG |
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
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.
Le montage
Tableau récapitulatif
| Arduino Uno | Capteur HC-SR04 2020 I2C |
|---|---|
| 5V | VCC |
| GND | GND |
| A4 | ECHO/SDA |
| A5 | TRIG/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
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
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.
Le montage
Tableau récapitulatif
| Arduino Uno | Capteur HC-SR04 2020 UART |
|---|---|
| 5V | VCC |
| GND | GND |
| D7 | ECHO/TX |
| D8 | TRIG/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 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
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.









