Entfernungsmessung mit Arduino und HC-SR04- oder US-015-Sensor
Die vorgestellten Sensoren ermöglichen eine Abstandsmessung mittels Ultraschall. Der Sensor sendet eine Welle, die nach Reflexion am Hindernis zu ihm zurückkehrt. Durch die Berechnung der Zeit zwischen Senden und Empfangen eines Impulses können wir die Entfernung zum Objekt bestimmen.
Wir benötigen folgende Artikel:
Anschließen des Sensors mit Arduino:
Um den Sensor mit Arduino zu betreiben, muss das System wie folgt angeschlossen werden:
Stift BH1750 | Arduino-Stift |
---|---|
VCC | 5 V |
Masse | Masse |
TRIG | 2 |
ECHO | 3 |
Anschlussplan des Ultraschallsensors mit dem Arduino Uno.
Programm für Arduino
Im Beispiel wurde folgender Code verwendet:
int Trig = 2; // Arduino Pin 2 mit dem Sensor-Trigger-Pin verbunden Int-Echo = 3; // Arduino Pin 3 mit Sensor Echo Pin verbunden int CM; // Abstand in cm lange Zeit; // Länge des Rückimpulses in US Void-Setup () { Serial.begin (9600); // seriellen Monitor initialisieren PinMode (Trigger, AUSGANG); // Pin 2 in Arduino als Ausgang setzen PinMode (Echo, EINGANG); // Pin 3 in Arduino als Eingang einstellen Serial.println ("Abstandssensortest"); } leere Schleife () { Abstandsmaß (); // Entfernungsmessung Serial.print ("Entfernung:"); // die Ergebnisse alle 200 ms in einer Schleife auf dem Bildschirm anzeigen Serial.print (CM); Serial.println ("cm"); Verzögerung (200); } void meas_odleglosci () { digitalWrite (Trigger, LOW); // Setzen des High-Zustands auf 2 uS - Initialisierungsimpuls - siehe Dokumentation VerzögerungMikrosekunden (2); digitalWrite (Trigger, HOCH); // Setzen des High-Zustands auf 10 uS - Initialisierungsimpuls - siehe Dokumentation VerzögerungMikrosekunden (10); digitalWrite (Trigger, LOW); digitalWrite (Echo, HOCH); ZEIT = pulseIn (Echo, HIGH); CM = ZEIT / 58; // Die Breite des reflektierten Impulses in US dividiert durch 58 ergibt den Abstand in cm - siehe Dokumentation }
Um die Entfernung zu einem Objekt zu berechnen, wird die Reaktionszeit durch 58 geteilt (laut Dokumentation). Warum so viel? Dieser Wert ergibt sich aus der Formel:
ZEIT / [1 / (0,34 / 2) / 10]
- der Wert in eckigen Klammern ist 58:
- 0,34 - Wellengeschwindigkeit in m / ms (340 m / s) geteilt durch 2 (weil die Welle in beide Richtungen gewandert ist).
- Plus alles, was durch 10 teilbar ist, um Millimeter in Zentimeter umzurechnen
Das Ergebnis des Programms kann auf einem seriellen Monitor angezeigt werden:
Screenshot des seriellen Monitors.