Ultraschall-Entfernungsmesser sind lustige kleine Sensoren, die die Entfernung messen können. Sie können sie verwenden, um die Entfernung zu einem Objekt zu ermitteln oder zu erkennen, wenn sich etwas in der Nähe des Sensors wie ein Bewegungsmelder befindet. Sie sind ideal für Projekte mit Navigation, Objektvermeidung und Sicherheit zu Hause. Da sie Ton verwenden, um die Entfernung zu messen, funktionieren sie im Dunkeln genauso gut wie im Licht., Der Ultraschall-Entfernungsmesser, den ich in diesem Tutorial verwenden werde, ist der HC-SR04, der Entfernungen von 2 cm bis 400 cm mit einer Genauigkeit von ±3 mm messen kann.
In diesem Artikel zeige ich Ihnen, wie Sie drei verschiedene Entfernungsmessschaltungen für den Arduino erstellen. Die erste Entfernungsmesserschaltung ist einfach einzurichten und hat eine ziemlich gute Genauigkeit. Die anderen beiden sind etwas komplizierter, aber genauer, weil sie Temperatur und Luftfeuchtigkeit beeinflussen. Aber bevor wir darauf eingehen, lassen Sie uns darüber sprechen, wie der Entfernungsmesser die Entfernung misst.,
Die Schallgeschwindigkeit
Ultraschall-Entfernungsmesser messen die Entfernung, indem sie einen Ultraschallschallpuls aussenden, der durch die Luft strömt, bis er auf ein Objekt trifft. Wenn dieser Schallpuls auf ein Objekt trifft, wird er vom Objekt reflektiert und kehrt zum Ultraschall-Entfernungsmesser zurück., Der Ultraschall-Entfernungsmesser misst, wie lange der Schallimpuls in seiner Rundreise vom Sensor und zurück benötigt wird. Es sendet dann ein Signal an den Arduino mit Informationen darüber, wie lange es dauerte, bis der Schallpuls unterwegs war.
Wenn man die Zeit kennt, die der Ultraschallpuls benötigt, um zum Objekt hin und her zu reisen, und auch die Schallgeschwindigkeit kennt, kann der Arduino den Abstand zum Objekt berechnen., Die Formel in Bezug auf die Schallgeschwindigkeit, Entfernung und zurückgelegte Zeit lautet:
Die HC-SR04 ultraschall range finder hat vier pins:
- Vcc – liefert die power zu erzeugen die ultraschall impulse
- GND – verbunden zu boden
- Trig – wo die Arduino sendet das signal zu starten die ultraschall puls
- Echo – wenn der Ultraschall-Entfernungsmesser die Informationen über die Dauer der Fahrt durch den Ultraschallpuls an den Arduino
sendet, um eine Entfernungsmessung zu initiieren, müssen wir ein 5V-Hochsignal für mindestens 10 µs an den Trig-Pin senden., Wenn das Modul dieses Signal empfängt, sendet es 8 Ultraschallpulse mit einer Frequenz von 40 kHz vom Sendewandler aus. Dann wartet und hört es am Empfangswandler auf das reflektierte Signal. Wenn sich ein Objekt in Reichweite befindet, werden die 8 Impulse zurück zum Sensor reflektiert. Wenn der Impuls auf den Empfangswandler trifft, gibt der Echopin ein Hochspannungssignal aus.
Die Länge dieses Hochspannungssignals entspricht der Gesamtzeit, die die 8 Impulse benötigen, um vom Sendewandler und zurück zum Empfangswandler zu gelangen., Wir möchten jedoch nur den Abstand zum Objekt messen und nicht den Abstand des Pfades, den der Schallimpuls genommen hat. Daher teilen wir diese Zeit in zwei Hälften, um die Zeitvariable in der obigen Gleichung d = s x t zu erhalten. Da wir die Schallgeschwindigkeit (n) bereits kennen, können wir die Gleichung für die Entfernung lösen.
Ultraschall-Entfernungsmesser Setup für seriellen Monitorausgang
Beginnen wir mit einem einfachen Ultraschall-Entfernungsmesser, der Entfernungsmessungen an Ihren seriellen Monitor ausgibt. Wenn Sie die Messwerte stattdessen auf einem LCD ausgeben möchten, lesen Sie den nächsten Abschnitt., Verbinden alles ist einfach, nur draht es up wie folgt:
Sobald sie haben alles verbunden, laden sie dieses programm auf die Arduino:
Erklärung der Code
- Zeile 11: Deklariert die Variablen
duration
unddistance
. - Zeilen 12 und 13: Sendet ein 2 µs NIEDRIGES Signal an die
trigPin
, um sicherzustellen, dass sie am Anfang der Programmschleife ausgeschaltet ist., - Zeilen 15-17: Sendet ein 10 µs HOHES Signal an die
trigPin
, um die Sequenz von acht 40 kHz Ultraschallpulsen zu initiieren, die vom Sendewandler gesendet werden. - Zeile 19: Definiert die Variable
duration
als die Länge (in µs) eines beliebigen HOHEN Eingangssignals, das an derechoPin
erkannt wird. Der Echo-Pin-Ausgang ist gleich der Zeit, die der emittierte Ultraschallpuls benötigt, um zum Objekt und zurück zum Sensor zu gelangen., - Zeile 20: Definiert die Variable
distance
als die Dauer (Zeit in d = s x t) multipliziert mit der Schallgeschwindigkeit, die von Metern pro Sekunde in Zentimeter pro µs (0,0344 cm/µs) umgerechnet wird. - Zeilen 22-24: Wenn der Abstand größer oder gleich 400 cm oder kleiner oder gleich 2 cm ist, zeigen Sie „Abstand = Außerhalb des Bereichs“ auf dem seriellen Monitor an.
- Zeilen 26-30: Wenn die Entfernungsmessung nicht außerhalb des Bereichs liegt, zeigen Sie die in Zeile 20 berechnete Entfernung auf dem seriellen Monitor für 500 ms an.,
Ultraschall-Entfernungsmesser mit LCD-Ausgang
Wenn Sie die Entfernungsmessungen an ein 16X2-LCD ausgeben möchten, folgen Sie diesem Diagramm, um den Entfernungsmesser und das LCD an Ihren Arduino anzuschließen:
Wenn Sie mehr Hilfe beim Anschließen des LCD benötigen, probieren Sie unsere weiteres Tutorial zum Einrichten eines LCD auf dem Arduino., Wenn alles angeschlossen ist, laden Sie diesen Code auf den Arduino hoch:
Ein Ultraschall-Entfernungsmesser mit höherer Genauigkeit
Da die Temperatur eine Variable in der Geschwindigkeit der Schallgleichung oben ist (c = 331,4 + (0,606 x T) + (0,0124 x H)), die Temperatur der Luft um den Sensor beeinflusst unsere Abstandsmessungen. Um dies zu kompensieren, müssen wir lediglich einen Thermistor zu unserer Schaltung hinzufügen und seine Messwerte in die Gleichung eingeben. Dies sollte unseren Abstandsmessungen eine größere Genauigkeit verleihen., Ein Thermistor ist ein variabler Widerstand, der den Widerstand mit der Temperatur ändert. Um mehr über Thermistoren zu erfahren, lesen Sie unseren Artikel, Arduino Thermistor Temperatursensor Tutorial. Hier ist ein Diagramm, mit dem Sie Ihrem Entfernungsmesser einen Thermistor hinzufügen können:
- R1 = 10K Ohm Widerstand
- Th = 10K Ohm Thermistor
Hinweis: Der Wert von R1 sollte dem Widerstand ihres Thermistors.,
Nachdem alles angeschlossen ist, laden Sie diesen Code auf den Arduino hoch:
Erläuterung des Codes
Im Basic Range Finder-Programm Am Anfang dieses Artikels haben wir die Formel d = s x t verwendet, um die Entfernung zu berechnen. In diesem Programm verwenden wir die Formel, die Temperatur und Luftfeuchtigkeit berücksichtigt (c = 331,4 + (0,606 x T) + (0,0124 x H)).
In den Zeilen 5-10 wird die Steinhart-Hart-Gleichung verwendet, um die Thermistorwiderstandswerte in Temperatur umzuwandeln, die in einer Variablen namens gespeichert sind., In Zeile 35 fügen wir eine neue Variable hinzu (spdSnd
), die die Schallgeschwindigkeit enthält. Die Ausgabe der Variablen spdSnd
wird als Geschwindigkeit in der Funktion distance
in Zeile 36 verwendet.
Die Sehr Hohe (Fast Zu Hoch) Genauigkeit Ultraschall Range Finder
Die temperatur kompensiert ultraschall range finder schaltung ist ziemlich genau für was die meisten menschen wird es verwenden für. Es gibt jedoch einen weiteren Faktor, der die Schallgeschwindigkeit in der Luft (und damit die Entfernungsberechnung) beeinflusst, und das ist die Luftfeuchtigkeit., Sie können aus der Schallgeschwindigkeit Gleichung sagen, dass Feuchtigkeit nur einen kleinen Einfluss auf die Schallgeschwindigkeit hat, aber lassen Sie es trotzdem überprüfen.
Es gibt verschiedene Arten von Feuchtigkeitssensoren, die Sie auf dem Arduino verwenden können, aber ich werde den Feuchtigkeits-und Temperatursensor DHT11 verwenden. Dieses Modul hat tatsächlich einen Thermistor zusätzlich zum Feuchtigkeitssensor, so dass die Einrichtung wirklich einfach ist:
Nachdem alles angeschlossen ist, müssen wir eine spezielle Bibliothek installieren, um den Code auszuführen., Die Bibliothek ist die von Rob Tillaart geschriebene DHTLib-Bibliothek. Die Bibliothek ist einfach zu installieren. Zuerst laden Sie die .zip-Datei unten. Dann in der Arduino-IDE, gehen Sie zu Skizze>Include Library>Add ZIP Library, und wählen Sie dann die DHTLib.zip-Datei.,
DHTLib
Nachdem die Bibliothek installiert ist, laden Sie diesen Code auf Ihren Arduino hoch:
Erläuterung des Codes
Die vom DHT11 ausgegebenen Temperatur-und Feuchtigkeitswerte sind digital, sodass wir die Steinhart-Hart-Gleichung nicht verwenden müssen, um die Temperaturbeständigkeit des Thermistors umzuwandeln. Die DHTLib-Bibliothek enthält alle Funktionen, die erforderlich sind, um die Temperatur und Luftfeuchtigkeit in Einheiten zu ermitteln, die wir direkt in der Schallgeschwindigkeitsgleichung verwenden können. Die Variablen für Temperatur und Luftfeuchtigkeit heißen DHT.temperature
und ., Dann wird die Geschwindigkeit als Variable in der Entfernungsgleichung in Zeile 28 verwendet.
Um die Entfernungsmessungen an ein LCD auszugeben, schließen Sie zuerst Ihr LCD an, indem Sie unserem Tutorial folgen So richten Sie ein LCD-Display auf einem Arduino ein und laden Sie dann diesen Code hoch:
Sehen Sie sich das Video-Tutorial an, um die Ultraschall-Entfernungsmesser-Schaltungen in Aktion zu sehen:
lesen! Hinterlassen Sie einen Kommentar, wenn Sie Fragen zur Einrichtung dieser haben., Wenn Ihnen unsere Artikel hier bei Circuit Basics gefallen, abonnieren Sie sie und wir informieren Sie, wenn wir neue Artikel veröffentlichen. Wenn Sie jemanden kennen, der diesen Artikel hilfreich findet, teilen Sie ihn bitte mit!