Verwendung eines CJMCU VL53L0X Laser-Entfernungsmessers mit Arduino
Dieses Tutorial zeigt, wie man den CJMCU VL53L0X Laser-Entfernungsmesser mit einem Arduino verwendet. Dieses Modul, ausgestattet mit einem Texas Instruments VL53L0X Time-of-Flight-Sensor und einem bidirektionalen Pegelwandler TXS0108E (im Video bei 00:06), bietet präzise Distanzmessungen bis zu zwei Metern (im Video bei 00:52). Seine Kompatibilität mit verschiedenen Logikpegeln (3.3V, 1.8V, 5V) vereinfacht die Integration mit unterschiedlichen Mikrocontrollern (im Video bei 00:21). Dieses Projekt eröffnet eine Vielzahl von Möglichkeiten.
Projektideen:
- Robotik: Hindernisvermeidung in Robotern implementieren.
- Automatisierung: Steuerung von Maschinen anhand der Nähe.
- Smart Home: Automatische Beleuchtung anhand der Entfernung erstellen.
- Sicherheit: Entwickeln Sie ein auf Näherung basierendes Alarmsystem.
Hardware/Komponenten
Zum Bau dieses Projekts benötigen Sie die folgenden Komponenten:
- Arduino-Board (jedes Modell funktioniert)
- CJMCU VL53L0X Laser-Entfernungsmessermodul
- Jumperkabel
Verdrahtungsanleitung
Das VL53L0X-Modul wird wie folgt mit dem Arduino verbunden:
Verbinden Sie den VCC-Pin des Moduls mit dem 5V-Pin am Arduino. Der interne Spannungsregler des Moduls liefert die benötigten 3.3V für den Sensor. (im Video bei 01:50)
Verbinde den GND-Pin des Moduls mit dem GND-Pin am Arduino.
Verbinde den SDA-Pin des Moduls mit dem A4-Pin am Arduino.
Verbinde den SCL-Pin des Moduls mit dem A5-Pin am Arduino.
Lassen Sie den XSHUT-Pin unbelegt, es sei denn, Sie müssen ihn zur Abschaltsteuerung verwenden. (im Video bei 03:50)
Erklärung des Codes
Der bereitgestellte Code verwendet die VL53L0X-Bibliothek. Im Folgenden eine Erklärung der wichtigsten konfigurierbaren Teile:
#include <Wire.h>
#include <VL53L0X.h>
VL53L0X sensor;
void setup()
{
Serial.begin(9600);
// ... other setup code ...
sensor.setTimeout(500); // Set timeout to 500ms (in video at 06:40)
sensor.startContinuous(); // Start continuous measurement mode (in video at 06:50)
}
void loop()
{
Serial.print(sensor.readRangeContinuousMillimeters()); // Read distance in mm (in video at 07:01)
// ... other loop code ...
}
der, die, dassensor.setTimeout(500)Diese Zeile setzt das Timeout für Abstandsmessungen auf 500 Millisekunden. Passen Sie diesen Wert bei Bedarf für Ihre Anwendung an (im Video bei 06:40). Dassensor.startContinuous()Die Funktion startet eine kontinuierliche Entfernungsmessung und liefert Entfernungswerte so schnell wie möglich (im Video bei 06:50). Diesensor.readRangeContinuousMillimeters()Die Funktion gibt die gemessene Entfernung in Millimetern zurück (im Video bei 07:01).
Live-Projekt/Demonstration
Das Video demonstriert die Funktionsweise des Sensors und zeigt, wie sich die Abstandswerte ändern, wenn sich der Abstand des Sensors zum Ziel ändert. Die Messwerte sind auf wenige Millimeter genau, besonders bei Abständen größer als 10mm (im Video bei 08:20). Bei sehr kurzen Distanzen (weniger als 10mm) nimmt die Genauigkeit ab (im Video bei 09:50). Die Demonstration zeigt außerdem, dass reflektierende Oberflächen die Messwerte beeinflussen können, insbesondere wenn der Laser nicht senkrecht zur Oberfläche ausgerichtet ist (im Video bei 10:32).
Kapitel
- [00:00] Einführung und Projektübersicht
- [00:48] VL53L0X Sensordetails
- [01:41] Modulübersicht und Spezifikationen
- [02:55] Anwendungen und Standards
- [03:35] Pinbelegung und Anschlüsse
- [05:29] Code-Erklärung
- [07:45] Verkabelung und Anschlüsse
- [08:18] Live-Demonstration
Ressourcen & Referenzen
-
ExternPololu Download (GitHub)github.com
-
ExternTXS0108E-Datenblattti.com
Dateien📁
Keine Dateien verfügbar.