Mesure de distance avec un module laser VL53L0X à 6 broches et un LCD1602-I2C pour Arduino
Dans ce tutoriel, nous allons apprendre à mesurer la distance à l'aide du capteur laser VL53L0X et à afficher les résultats sur un LCD1602 avec interface I2C. Ce projet vous permet d'obtenir des mesures de distance précises, en millimètres ou en centimètres, ce qui en fait un ajout polyvalent à tout projet basé sur Arduino. À la fin de ce tutoriel, vous disposerez d'un système de mesure de distance entièrement fonctionnel, facile à installer et à utiliser.

Pour ce faire, nous utiliserons le capteur de distance laser VL53L0X, qui communique avec l'Arduino via I2C. L'écran LCD1602 fournira une représentation visuelle claire de la distance mesurée. Pour plus de clarté sur le processus de codage, veuillez vous référer à la vidéo (à 00:00).
Le matériel expliqué
Les principaux composants de ce montage sont le capteur de distance laser VL53L0X et l'afficheur LCD1602. Le VL53L0X utilise un laser pour mesurer la distance avec précision, ce qui le rend adapté à diverses applications, notamment la robotique et l'automatisation. Il fonctionne via la communication I2C, ce qui permet une intégration facile avec l'Arduino.
L'écran LCD1602 est un afficheur de caractères compatible I2C qui peut afficher jusqu'à 16 caractères sur deux lignes. Il simplifie le processus d'affichage des données, car il nécessite moins de broches que les écrans LCD traditionnels. Ensemble, ces composants créent un système de mesure de distance puissant et convivial.
Détails de la fiche technique
| Fabricant | STMicroelectronics |
|---|---|
| Numéro de pièce | VL53L0X |
| Tension logique/E/S | 1,8 V à 2,8 V |
| Tension d'alimentation | 2,6 V à 3,5 V |
| Courant de sortie (par canal) | ... |
| Courant de crête (par canal) | ... |
| Conseils sur la fréquence PWM | ... |
| Seuils logiques d'entrée | ... |
| Chute de tension / RDS(on)/ saturation | ... |
| Limites thermiques | ... |
| Colis | ... |
| Notes / variantes | ... |
- Assurez-vous que la tension d'alimentation est comprise entre 2,6 V et 3,5 V.
- Utilisez des résistances de tirage sur les lignes SDA et SCL si nécessaire.
- Éloignez le capteur des surfaces réfléchissantes pour éviter des lectures erronées.
- Vérifiez l'adresse I2C (par défaut 0x29 pour le VL53L0X).
- Prenez en compte la dissipation thermique si vous l'utilisez dans des environnements à haute température.
Instructions de câblage

Pour câbler le capteur VL53L0X et l'écran LCD1602, commencez par connecter l'alimentation et la masse. ConnectezVCCla broche du VL53L0X vers le5Vbroche sur l'Arduino et leGNDBranchez la broche à la masse de l'Arduino. Pour le LCD1602, connectez sonVCCau même5VetGNDà la terre également.
Ensuite, connectez les lignes de communication I2C. LeSDAla broche du VL53L0X doit être connectée auA4broche sur l'Arduino, et leSCLla broche doit aller àA5. LeXSHUTla broche peut être connectée àD12sur l'Arduino, mais il peut aussi rester non connecté. Pour le LCD1602, assurez-vousSDAetSCLsont également connectés aux mêmes broches que le capteur VL53L0X.
Exemples de code et tutoriel pas à pas
VL53L0X sensor;
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
Wire.begin();
sensor.init();
sensor.setTimeout(500);
sensor.startContinuous();
lcd.begin();
lcd.backlight();
}
Dans la fonction setup, nous initialisons la communication série et le bus I2C. Lesensor.init()initialise le capteur VL53L0X, tandis quelcd.begin()initialise l'écran LCD. Le rétroéclairage de l'écran est activé, ce qui permet une bonne visibilité.
void loop() {
int distance = sensor.readRangeContinuousMillimeters();
Serial.print("Distance: ");
lcd.clear();
lcd.print("Robojax VL53L0X");
lcd.setCursor(0,1);
lcd.print("Dist.: ");
lcd.setCursor(7,1);
lcd.print(distance);
Serial.println();
delay(100);
}
À l'intérieur de la boucle, nous lisons en continu la distance à l'aide desensor.readRangeContinuousMillimeters()et l'affiche sur le moniteur série. L'écran LCD est mis à jour avec la mesure de la distance, offrant un retour en temps réel. Le délai de 100 millisecondes garantit que les lectures ne sont pas mises à jour trop fréquemment, ce qui facilite la lecture.
Démonstration / À quoi s'attendre
Lorsqu'il est sous tension, le système mesurera en continu la distance et affichera les résultats sur l'écran LCD. Vous pouvez vous attendre à voir les valeurs de distance changer lorsque vous rapprochez ou éloignez des objets du capteur. S'il y a des problèmes avec le capteur, tels que des erreurs de dépassement de délai, des messages appropriés seront affichés sur le moniteur série (dans la vidéo à 03:15).
Ce dont vous pourriez avoir besoin
-
AmazonPurchase VL53L0X from Amazonamzn.to
-
eBayAchetez le VL53l0x sur eBayebay.us
-
AliExpressAchetez de 1 à 10 pièces de VL53L0X sur AliExpress.s.click.aliexpress.com
-
BanggoodAchetez de 1 à 10 pièces de VL53L0X sur Banggoodbanggood.com
Ressources et références
-
ExterneAchetez de 1 à 10 pièces de VL53L0X sur AliExpress.s.click.aliexpress.com
-
ExterneAchetez de 1 à 10 pièces de VL53L0X sur Banggoodbanggood.com
-
ExterneAchetez le VL53l0x sur eBayebay.us
-
ExternePage de téléchargement Adafruitlearn.adafruit.com
-
ExterneVL53L0X datasheet (PDF)st.com
Fichiers📁
Fichier Fritzing
-
VL53L0X_Distance_sensor_Squares
application/zip0.02 MB
Autres fichiers
-
Bibliothèque Adafruit VL53L0X de Robojax
robojax-VL52L0X_Adafruit_VL53L0X-master.zip -
VL53L0X_Distance_sensor_purple
application/zip0.01 MB