Leçon 20/31 : Affichage de la distance ultrasonique sur LCD1602
Ce projet démontre comment combiner un capteur de distance ultrasonique HC-SR04 avec un afficheur LCD1602 compatible I2C pour créer un système de mesure de distance en temps réel. À la fin de ce guide, vous disposerez d'un appareil fonctionnel qui mesure et affiche en continu la distance jusqu'à un objet en centimètres. Il s'agit d'une compétence fondamentale en électronique Arduino, car elle combine l'entrée du capteur avec la sortie visuelle.
Ce montage pratique peut être utilisé dans diverses applications réelles, notamment :
- Créer un assistant de stationnement intelligent qui vous aide à évaluer la distance par rapport à un mur ou à un autre véhicule.
- Construire un moniteur de niveau de liquide simple pour un réservoir en mesurant la distance entre le haut et la surface.
- Développer un distributeur automatique de désinfectant pour les mains ou une poubelle sans contact qui s'ouvre lorsqu'un objet est proche.
- Construire une alarme de sécurité de base qui se déclenche lorsque quelqu'un entre dans une zone spécifique.
Matériel et composants
Pour construire ce projet, vous aurez besoin des composants suivants :
- Carte Arduino (par exemple, Uno)
- Afficheur LCD1602 avec module d'interface I2C
- Capteur de distance ultrasonique HC-SR04
- Fils de connexion (jumper wires)
- Plaque d'essai (breadboard) (facultatif, pour des connexions plus faciles)
Comprendre le LCD1602 et l'I2C
Le LCD1602 est un afficheur populaire capable d'afficher 16 caractères par ligne sur deux lignes. Le module « I2C » à l'arrière est un avantage significatif car il réduit le nombre de broches nécessaires pour contrôler l'afficheur de 6 ou plus à seulement 2 pour la communication (SDA et SCL) et 2 pour l'alimentation (VCC et GND). Cette simplification rend le câblage beaucoup plus propre et libère de précieuses broches numériques sur votre Arduino pour d'autres capteurs, comme celui à ultrasons utilisé dans ce projet. (dans la vidéo à 01:30)
Le module I2C comporte également un petit potentiomètre pour régler le contraste de l'afficheur. Si vous mettez l'afficheur sous tension et que vous ne voyez rien, essayez de tourner cette vis jusqu'à ce que le texte devienne visible. (dans la vidéo à 02:47)
Guide de câblage
La connexion des composants est simple. Le module I2C du LCD possède quatre broches qui doivent être connectées à l'Arduino. Pour le capteur à ultrasons, il possède également quatre broches.
Voici une répartition des connexions :
Module I2C du LCD1602 vers l'Arduino :
- GND vers GND de l'Arduino
- VCC vers 5V de l'Arduino
- SDA vers A4 de l'Arduino
- SCL vers A5 de l'Arduino
Capteur ultrasonique HC-SR04 vers l'Arduino :
- VCC vers 5V de l'Arduino
- Trig vers la broche numérique 12 de l'Arduino
- Echo vers la broche numérique 11 de l'Arduino
- GND vers GND de l'Arduino
Le schéma de câblage pour ce projet est référencé dans la vidéo.
Installation des bibliothèques requises
Ce projet repose sur deux bibliothèques cruciales. La première, LiquidCrystal_I2C, est nécessaire pour contrôler le LCD et n'est pas incluse par défaut avec l'IDE Arduino. Vous pouvez la télécharger à partir du lien fourni dans la description de la vidéo ou sur le site Web de Robojax. (dans la vidéo à 06:16)
La deuxième bibliothèque, NewPing, est utilisée pour interfacer avec le capteur à ultrasons. Elle simplifie le processus d'envoi d'une impulsion et de lecture du temps d'écho. Les deux bibliothèques peuvent être installées via le gestionnaire de bibliothèques de l'IDE Arduino en allant dans Croquis -> Inclure une bibliothèque -> Gérer les bibliothèques et en recherchant leurs noms.
Explication du code
Ce croquis combine les fonctionnalités du LCD et du capteur à ultrasons. Le code est structuré pour être facilement configurable pour votre montage spécifique.
En haut du code, vous trouverez les variables clés que vous devrez peut-être ajuster :
// Définir l'adresse LCD sur 0x27 pour un affichage de 16 caractères et 2 lignes
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // Broche Arduino reliée à la broche trigger du capteur à ultrasons.
#define ECHO_PIN 11 // Broche Arduino reliée à la broche echo du capteur à ultrasons.
#define MAX_DISTANCE 190 // Distance maximale que nous voulons mesurer (en centimètres).
- Adresse LCD (0x27) : Il s'agit de l'adresse I2C de votre module LCD. La plupart des modules utilisent
0x27, mais certains peuvent utiliser0x3F. Si votre afficheur ne montre rien, vous devrez peut-être exécuter un croquis de balayage I2C pour trouver la bonne adresse et mettre à jour cette valeur. (dans la vidéo à 08:11) - TRIGGER_PIN et ECHO_PIN : Ces définitions indiquent les broches numériques de l'Arduino connectées aux broches Trig et Echo du capteur à ultrasons. Si vous utilisez des broches différentes, modifiez ces définitions.
- MAX_DISTANCE : Cela définit la distance maximale en centimètres que le capteur mesurera. Le HC-SR04 peut mesurer jusqu'à 400-500 cm, mais définir une valeur plus basse peut améliorer la précision et la fiabilité des lectures, en particulier pour les distances plus courtes.
Dans la fonction loop(), le code effectue les étapes suivantes :
- Il utilise la fonction
sonar.ping_cm()pour mesurer la distance et la stocker dans la variabledistance. - Il efface l'écran LCD et affiche le texte « Robojax.com » sur la première ligne.
- Il place ensuite le curseur sur la deuxième ligne et affiche « Distance : ».
- Enfin, il déplace le curseur à la position 10 sur la deuxième ligne pour afficher la valeur mesurée
distancesuivie de « cm ».
Le delay(200) à la fin de la boucle contrôle la fréquence à laquelle le capteur prend une nouvelle mesure et met à jour l'affichage.
Démonstration du code
Une fois le code téléversé sur votre Arduino, l'écran LCD s'allumera et commencera à afficher la distance. Vous pouvez tester le montage en rapprochant et en éloignant votre main ou un objet du capteur ultrasonique. Le nombre à l'écran doit se mettre à jour en temps réel, affichant la distance en centimètres. (dans la vidéo à 38:07)
Projets connexes de cette vidéo
- Leçon 20/31 : Utilisation de l'écran LCD1602 avec Arduino pour afficher du texte | Robojax
- Leçon 20/31 : Affichage de la température et de l'humidité du DHT11 sur un écran LCD
- Leçon 20/31 : Affichage de la tension sur un LCD1602
Chapitres
- [00:00] Introduction au LCD1602 et aperçu du projet
- [01:30] Explication du matériel LCD1602 et du module I2C
- [03:14] Brochage du LCD et configuration de l'adresse I2C
- [05:28] Schéma de câblage pour le LCD1602
- [06:16] Installation de la bibliothèque LCD requise
- [07:24] Code de base pour afficher du texte sur le LCD
- [08:11] Trouver l'adresse I2C de votre LCD
- [11:10] Exemples LCD : curseur clignotant et caractères personnalisés
- [18:51] Exemple LCD : affichage série et texte défilant
- [24:36] Affichage de la température et de l'humidité du DHT11 sur le LCD
- [33:00] Affichage de la tension d'un potentiomètre sur le LCD
- [35:56] Combinaison du code du capteur ultrasonique avec le LCD
- [38:07] Démonstration de l'affichage de la distance ultrasonique
This code has not been parsed yet. Please return to the admin panel to parse it.
Ce dont vous pourriez avoir besoin
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Ressources et références
-
DocumentationDocumentation pour le kit d'apprentissage IoT/Smart Car/en 3 en 1 de SunFounderdocs.sunfounder.com
-
Externe
Fichiers📁
Bibliothèques Arduino (zip)
-
Code source du kit d'apprentissage Smart Car 3-en-1 de SunFounder.
3in1-kit-main-v2.zip12.80 MB
Manuel de l'Utilisateur
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB