Code de recherche

Leçon 20/31 : Affichage de la distance ultrasonique sur LCD1602

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.

Sunfounder 20-LCD1602-ultrasonic

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

LCD1602_wiring_ultrasonic_bb

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 utiliser 0x3F. 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 :

  1. Il utilise la fonction sonar.ping_cm() pour mesurer la distance et la stocker dans la variable distance.
  2. Il efface l'écran LCD et affiche le texte « Robojax.com » sur la première ligne.
  3. Il place ensuite le curseur sur la deuxième ligne et affiche « Distance : ».
  4. Enfin, il déplace le curseur à la position 10 sur la deuxième ligne pour afficher la valeur mesurée distance suivie 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

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

Images

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Langue: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Fichiers📁

Bibliothèques Arduino (zip)

Manuel de l'Utilisateur