Entfernung messen mit einem Laser-VL53L0X-6-Pin-Modul und LCD1602-I2C für Arduino
In diesem Tutorial lernen wir, wie man Entfernungen mit dem VL53L0X-Lasersensor misst und die Ergebnisse auf einem LCD1602 mit I2C-Schnittstelle anzeigt. Dieses Projekt ermöglicht es Ihnen, präzise Distanzmessungen in Millimetern oder Zentimetern durchzuführen und ist damit eine vielseitige Ergänzung für jedes Arduino-basierte Projekt. Am Ende dieses Tutorials haben Sie ein voll funktionsfähiges Distanzmesssystem, das einfach einzurichten und zu verwenden ist.

Um dies zu erreichen, werden wir den VL53L0X-Laserentfernungssensor verwenden, der über I2C mit dem Arduino kommuniziert. Das LCD1602-Display bietet eine klare visuelle Darstellung der gemessenen Entfernung. Zur Verdeutlichung der Programmierung sehen Sie sich bitte das Video an (im Video bei 00:00).
Hardware erklärt
Die Hauptkomponenten dieses Aufbaus sind der VL53L0X-Laserdistanzsensor und das LCD1602-Display. Der VL53L0X nutzt einen Laser, um Entfernungen genau zu messen, wodurch er sich für verschiedene Anwendungen eignet, einschließlich Robotik und Automatisierung. Er arbeitet über die I2C-Kommunikation, was eine einfache Integration mit dem Arduino ermöglicht.
Das LCD1602-Display ist ein I2C-fähiges Zeichen-Display, das bis zu 16 Zeichen auf zwei Zeilen anzeigen kann. Es vereinfacht das Anzeigen von Daten, da es weniger Pins als herkömmliche LCDs benötigt. Zusammen bilden diese Komponenten ein leistungsstarkes und benutzerfreundliches Abstandsmesssystem.
Datenblattdetails
| Hersteller | STMicroelectronics |
|---|---|
| Teilenummer | VL53L0X |
| Logik-/I/O-Spannung | 1.8 V bis 2.8 V |
| Versorgungsspannung | 2.6 V bis 3.5 V |
| Ausgangsstrom (pro Kanal) | ... |
| Spitzenstrom (pro Kanal) | ... |
| Hinweise zur PWM-Frequenz | ... |
| Eingangslogikschwellen | ... |
| Spannungsabfall / RDS(on)/ Sättigung | ... |
| Thermische Grenzwerte | ... |
| Paket | ... |
| Notizen / Varianten | ... |
- Stellen Sie sicher, dass die Versorgungsspannung im Bereich von 2,6 V bis 3,5 V liegt.
- Verwenden Sie Pull-up-Widerstände an den SDA- und SCL-Leitungen, falls erforderlich.
- Halten Sie den Sensor von reflektierenden Oberflächen fern, um fehlerhafte Messwerte zu vermeiden.
- Überprüfen Sie die I2C-Adresse (Standard ist 0x29 für VL53L0X).
- Berücksichtigen Sie die Wärmeabfuhr bei Verwendung in Umgebungen mit hohen Temperaturen.
Verdrahtungsanleitung

Um den VL53L0X-Sensor und das LCD1602-Display zu verkabeln, beginnen Sie damit, die Stromversorgung und die Masse zu verbinden. Schließen Sie dieVCCPin des VL53L0X an die5VPin am Arduino und derGNDPin an die Masse des Arduino. Für das LCD1602, verbinden Sie dessenVCCan dasselbe5VundGNDebenfalls zu erden.
Schließen Sie als Nächstes die I2C-Kommunikationsleitungen an. DieSDADer Pin des VL53L0X sollte mit dem verbunden werdenA4Pin am Arduino, und dasSCLDer Pin sollte zuA5. DerXSHUTPin kann verbunden werden mitD12am Arduino, kann aber auch unverbunden bleiben. Für das LCD1602 stellen Sie sicherSDAundSCLsind ebenfalls mit denselben Pins wie der VL53L0X-Sensor verbunden.
Codebeispiele & Schritt-für-Schritt-Anleitung
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();
}
In der Setup-Funktion initialisieren wir die serielle Kommunikation und den I2C-Bus. Diesensor.init()initialisiert den VL53L0X-Sensor, währendlcd.begin()Initialisiert das LCD-Display. Die Hintergrundbeleuchtung des Displays wird eingeschaltet, wodurch eine gute Sichtbarkeit gewährleistet ist.
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);
}
Innerhalb der Schleife lesen wir kontinuierlich die Entfernung mithilfe vonsensor.readRangeContinuousMillimeters()und gibt es im seriellen Monitor aus. Das LCD wird mit der Abstandsmessung aktualisiert und liefert Echtzeit-Feedback. Die Verzögerung von 100 Millisekunden stellt sicher, dass die Messwerte nicht zu häufig aktualisiert werden, sodass sie sich leicht ablesen lassen.
Vorführung / Was Sie erwartet
Nach dem Einschalten misst das System kontinuierlich die Entfernung und zeigt die Ergebnisse auf dem LCD an. Wenn Sie Objekte näher an den Sensor heran- oder weiter davon wegbewegen, sollten sich die Entfernungswerte entsprechend ändern. Wenn es Probleme mit dem Sensor gibt, wie z. B. Timeout-Fehler, werden entsprechende Meldungen auf dem seriellen Monitor ausgegeben (im Video bei 03:15).
Dinge, die Sie vielleicht brauchen
-
AmazonKaufen Sie VL53L0X bei Amazonamzn.to
-
eBayKaufe VL53l0x bei eBayebay.us
-
AliExpressKaufen Sie 1 bis 10 Stück VL53L0X von AliExpress.s.click.aliexpress.com
-
BanggoodKaufe 1 bis 10 Stück VL53L0X von Banggoodbanggood.com
Ressourcen & Referenzen
-
ExternAdafruit-Downloadseitelearn.adafruit.com
-
ExternKaufe 1 bis 10 Stück VL53L0X von Banggoodbanggood.com
-
ExternKaufe VL53l0x bei eBayebay.us
-
ExternKaufen Sie 1 bis 10 Stück VL53L0X von AliExpress.s.click.aliexpress.com
-
ExternVL53L0X Datenblatt (PDF)st.com
Dateien📁
Fritzing-Datei
-
VL53L0X_Distanzsensor_Quadrate
VL53L0X_Distance_sensor_Squares.fzpz0.02 MB
Andere Dateien
-
Adafruit VL53L0X Bibliothek von Robojax
robojax-VL52L0X_Adafruit_VL53L0X-master.zip -
VL53L0X-Abstandssensor-lila
VL53L0X_Distance_sensor_purple.fzpz0.01 MB