- VF6180X Flugzeit-Entfernungsmesser-Sensor (ToF)
- Schaltplan
- Hinzufügen der erforderlichen Bibliotheken für den VL6180 ToF-Sensor
- Programmier- und Arbeitserklärung
TOF oder Time of Flight ist eine häufig verwendete Methode, um die Entfernung entfernter Objekte mit verschiedenen Entfernungsmesssensoren wie Ultraschallsensoren zu messen. Die Messung der Zeit, die ein Partikel, eine Welle oder ein Objekt benötigt, um eine Strecke durch ein Medium zurückzulegen, wird als Flugzeit (Time-of-Flight, TOF) bezeichnet. Diese Messung kann dann verwendet werden, um die Geschwindigkeit oder Weglänge zu berechnen. Es kann auch verwendet werden, um die Partikel oder Eigenschaften des Mediums wie Zusammensetzung oder Fließgeschwindigkeit kennenzulernen. Das reisende Objekt kann direkt oder indirekt erfasst werden.
Ultraschall-Entfernungsmessgeräte sind eines der frühesten Geräte nach dem Prinzip der Flugzeit. Diese Geräte senden einen Ultraschallimpuls aus und messen den Abstand zu einem festen Material basierend auf der Zeit, die die Welle benötigt, um zum Emitter zurückzuspringen. Wir haben in vielen unserer Anwendungen Ultraschallsensoren verwendet, um die Entfernung zu messen:
- Entfernungsmessung auf Basis von Arduino- und Ultraschallsensoren
- Messen Sie die Entfernung mit dem Ultraschallsensor Raspberry Pi und HCSR04
- So messen Sie den Abstand zwischen zwei Ultraschallsensoren
Die Flugzeitmethode kann auch verwendet werden, um die Elektronenmobilität abzuschätzen. Eigentlich wurde es für die Messung von dünnleitenden Dünnfilmen entwickelt, später wurde es für gängige Halbleiter angepasst. Diese Technik wird sowohl für organische Feldeffekttransistoren als auch für Metall-Dielektrikum-Metall-Strukturen verwendet. Durch Anlegen des Lasers oder des Spannungsimpulses werden die überschüssigen Ladungen erzeugt.
Das TOF-Prinzip dient zur Messung des Abstands zwischen einem Sensor und einem Objekt. Die Zeit, die das Signal benötigt, um nach dem Reflektieren von einem Objekt zum Sensor zurückzukehren, wird gemessen und zur Berechnung der Entfernung verwendet. Mit dem TOF-Prinzip können verschiedene Arten von Signalen (Trägern) wie Ton und Licht verwendet werden. Wenn TOF zur Entfernungsmessung verwendet wird, ist es sehr leistungsfähig, wenn eher Licht als Ton emittiert wird. Im Vergleich zu Ultraschall bietet es eine schnellere Ablesung, eine höhere Genauigkeit und eine größere Reichweite, wobei das geringe Gewicht, die geringe Größe und der geringe Stromverbrauch erhalten bleiben.
Hier in diesem Tutorial verwenden wir einen VL6180X TOF-Entfernungsmesser-Sensor mit Arduino, um den Abstand zwischen Sensor und Objekt zu berechnen. Dieser Sensor zeigt auch den Lichtintensitätswert in LUX an.
VF6180X Flugzeit-Entfernungsmesser-Sensor (ToF)
Der VL6180 unterscheidet sich von anderen Abstandssensoren dadurch, dass er mithilfe einer präzisen Uhr die Zeit misst, die das Licht benötigt, um von einer beliebigen Oberfläche zurück zu reflektieren. Dies gibt dem VL6180 einen Vorteil gegenüber anderen Sensoren, da er genauer und unempfindlicher gegen Rauschen ist.
VL6180 ist ein 3-in-1-Gehäuse, das einen IR-Emitter, einen Umgebungslichtsensor und einen Entfernungssensor enthält. Es kommuniziert über eine I 2 C-Schnittstelle. Es verfügt über einen integrierten 2,8-V-Regler. Selbst wenn wir eine Spannung von mehr als 2,8 V anschließen, wird diese automatisch heruntergeschaltet, ohne die Platine zu beschädigen. Es misst eine Reichweite von bis zu 25 cm. Darin sind zwei programmierbare GPIOs enthalten.
Schaltplan
Hier wird das Nokia 5110 LCD verwendet, um die Lichtstärke und Entfernung anzuzeigen. Das Nokia 5110 LCD wird mit 3,3 V betrieben, sodass es nicht direkt mit den digitalen Pins von Arduino Nano verbunden werden kann. Fügen Sie also 10k-Widerstände in Reihe mit den Datensignalen hinzu, um die 3,3-V-Leitungen vor 5-V-Digitalpins zu schützen. Erfahren Sie mehr über die Verwendung des Nokia 5110 LCD mit Arduino.
Der VL6180-Sensor kann direkt an das Arduino angeschlossen werden. Die Kommunikation zwischen dem VL6180 und Arduino ist I2C. Tatsächlich kombiniert das I2C-Kommunikationsprotokoll die besten Funktionen von SPI und UART. Hier können wir mehrere Slaves mit einem einzelnen Master verbinden und mehrere Master können einen oder mehrere Slaves steuern. Wie die UART-Kommunikation verwendet I2C zwei Drähte für die Kommunikation SDA (Serial Data) und SCL (Serial Clock), eine Datenleitung und eine Taktleitung.
Der Schaltplan für den Anschluss des ToF-Entfernungsmessersensors VL6180 an Arduino ist nachstehend aufgeführt:
- Verbinden Sie den RST-Pin des LCD über den 10K-Widerstand mit dem Pin 6 von Arduino.
- Verbinden Sie den CE-Pin des LCD über den 10K-Widerstand mit dem Pin 7 von Arduino.
- Verbinden Sie den DC-Pin des LCD über den 10K-Widerstand mit Pin 5 von Arduino.
- Verbinden Sie den DIN-Pin des LCD über den 10K-Widerstand mit dem Pin 4 von Arduino.
- Verbinden Sie den CLK-Pin des LCD über den 10K-Widerstand mit dem Pin 3 des Arduino.
- Verbinden Sie den VCC-Pin des LCD mit dem 3,3-V-Pin von Arduino.
- Verbinden Sie den GND-Pin des LCD mit dem GND von Arduino.
- Verbinden Sie den SCL-Pin von VL6180 mit dem A5-Pin von Arduino
- Verbinden Sie den SDA-Pin von VL6180 mit dem A4-Pin von Arduino
- Verbinden Sie den VCC-Pin von VL6180 mit dem 5-V-Pin von Arduino
- Verbinden Sie den GND-Pin von VL6180 mit dem GND-Pin von Arduino
Hinzufügen der erforderlichen Bibliotheken für den VL6180 ToF-Sensor
Für die Verbindung des VL6180-Sensors mit Arduino werden drei Bibliotheken verwendet.
1. Adafruit_PCD8544
Adafruit_PCD8544 ist eine Bibliothek für die monochromen Nokia 5110 LCD-Displays. Diese Anzeigen verwenden SPI für die Kommunikation. Für die Verbindung dieses LCD sind vier oder fünf Pins erforderlich. Der Link zum Herunterladen dieser Bibliothek ist unten angegeben:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Die Adafruit_GFX-Bibliothek für Arduino ist die Kerngrafikbibliothek für LCD-Anzeigen und bietet eine gemeinsame Syntax und eine Reihe von Grafikprimitiven (Punkte, Linien, Kreise usw.). Es muss mit einer hardwarespezifischen Bibliothek für jedes von uns verwendete Anzeigegerät gekoppelt werden (um die Funktionen der unteren Ebene zu handhaben). Der Link zum Herunterladen dieser Bibliothek ist unten angegeben:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
SparkFun_VL6180 ist die Arduino-Bibliothek mit der Grundfunktionalität des VL6180-Sensors. Der VL6180 besteht aus einem IR-Emitter, einem Entfernungssensor und einem Umgebungslichtsensor, die über eine I2C-Schnittstelle kommunizieren. In dieser Bibliothek können Sie die Entfernungs- und Lichtausgänge des Sensors ablesen und die Daten über eine serielle Verbindung ausgeben. Der Link zum Herunterladen dieser Bibliothek ist unten angegeben:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Fügen Sie alle Bibliotheken nacheinander hinzu, indem Sie in Skizze >> Bibliothek einschließen >> ZIP-Bibliothek in Arduino IDE hinzufügen gehen . Laden Sie dann die Bibliothek hoch, die Sie über die obigen Links heruntergeladen haben.
Manchmal müssen Sie keine Wire- und SPI-Bibliotheken hinzufügen, aber wenn Sie eine Fehlermeldung erhalten, laden Sie diese bitte herunter und fügen Sie sie Ihrer Arduino IDE hinzu.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Programmier- und Arbeitserklärung
Der vollständige Code mit einem Arbeitsvideo finden Sie am Ende dieses Tutorials. Hier erklären wir das vollständige Programm, um die Funktionsweise des Projekts zu verstehen.
In diesem Programm werden die meisten Teile von den von uns hinzugefügten Bibliotheken verwaltet, sodass Sie sich darüber keine Gedanken machen müssen.
Stellen Sie im Setup- Teil die Baudrate auf 115200 ein und initialisieren Sie die Wire-Bibliothek für I2C. Überprüfen Sie dann, ob der VL6180-Sensor ordnungsgemäß funktioniert oder nicht. Wenn er nicht funktioniert, wird eine Fehlermeldung angezeigt.
Im folgenden Teil richten wir die Anzeige ein. Hier können Sie den Kontrast auf den gewünschten Wert einstellen. Ich stelle ihn auf 50 ein
void setup () { Serial.begin (115200); // Start Serial bei 115200bps Wire.begin (); // Verzögerung der I2C-Bibliothek starten (100); // verzögern. if (sensor.VL6180xInit ()! = 0) { Serial.println ("INITALISIERUNG FEHLGESCHLAGEN"); // Gerät initialisieren und auf Fehler prüfen }; sensor.VL6180xDefautSettings (); // Standardeinstellungen laden, um loszulegen. Verzögerung (1000); // Verzögerung 1s display.begin (); // init done // Sie können den Kontrast ändern, um die Anzeige // für die beste Anzeige anzupassen ! display.setContrast (50); display.display (); // Splashscreen anzeigen display.clearDisplay (); }}
Richten Sie im Void-Loop- Teil die Anweisungen zum Anzeigen der Werte auf dem LCD-Bildschirm ein. Hier zeigen wir zwei Werte an, einer ist der „Umgebungslichtpegel in Lux“ (ein Lux ist tatsächlich ein Lumen pro Quadratmeter Fläche) und der zweite ist „Abstand gemessen in mm“. Um verschiedene Werte auf einem LCD-Bildschirm anzuzeigen, definieren Sie die Position jedes Textes, der auf dem LCD-Bildschirm angezeigt werden soll, mit „display.setCursor (0,0);“.
void loop () { display.clearDisplay (); // Umgebungslichtpegel abrufen und in LUX Serial.print melden ("Umgebungslichtpegel (Lux) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (SCHWARZ); display.setCursor (0,0); display.println ("Lichtstärke"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // Entfernung abrufen und in mm melden Serial.print ("Entfernung gemessen (mm) ="); Serial.println (sensor.getDistance ()); display.setTextSize (1); display.setTextColor (SCHWARZ); display.setCursor (0, 24); display.println ("Abstand (mm) ="); display.setCursor (0, 36); b = sensor.getDistance (); display.println (b); display.display (); Verzögerung (500); }}
Öffnen Sie nach dem Hochladen des Programms den seriellen Monitor und er sollte die Ausgabe wie unten gezeigt anzeigen.
Die TOF-Entfernungsmesser VL6180 werden in Smartphones, tragbaren Touchscreen-Geräten, Tablets, Laptops, Spielgeräten und Haushaltsgeräten / Industriegeräten verwendet.
Hier zeigen wir das Umgebungslicht in Lux und den Abstand in mm an.
Das vollständige Programm und das Demonstrationsvideo finden Sie unten. Überprüfen Sie auch, wie Sie die Entfernung mit dem Ultraschallsensor und die Lichtstärke mit dem Umgebungslichtsensor BH1750 messen.