So richten Sie einen Ultraschall-Entfernungsmesser auf einem Arduino ein

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.,

BONUS: Ich habe eine Kurzanleitung für dieses Tutorial erstellt, die Sie herunterladen und später wiederherstellen können, wenn Sie dies derzeit nicht einrichten können. Es umfasst alle Schritte, Diagramme und Code, die Sie benötigen, um loszulegen.

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:

Wenn wir diese Formel neu anordnen, erhalten wir die Formel zur Berechnung der Entfernung:

Die Zeitvariable ist die Zeit, die der Ultraschallpuls benötigt, um den Sensor zu verlassen, das Objekt abzuprallen und zum Sensor zurückzukehren., Wir teilen diese Zeit tatsächlich in zwei Hälften, da wir nur den Abstand zum Objekt messen müssen, nicht den Abstand zum Objekt und zurück zum Sensor. Die Geschwindigkeitsvariable ist die Geschwindigkeit, mit der sich Schall durch die Luft bewegt.

Die Schallgeschwindigkeit in der Luft ändert sich mit Temperatur und Luftfeuchtigkeit. Um die Entfernung genau zu berechnen, müssen wir daher die Umgebungstemperatur und Luftfeuchtigkeit berücksichtigen., Die Formel für die Schallgeschwindigkeit in Luft mit Temperatur und Luftfeuchtigkeit lautet:

Bei 20°C und 50% Luftfeuchtigkeit bewegt sich der Schall mit einer Geschwindigkeit von:

In der obigen Gleichung ist klar, dass die Temperatur den größten Einfluss auf die Schallgeschwindigkeit hat. Feuchtigkeit hat einen gewissen Einfluss, aber es ist viel weniger als die Wirkung der Temperatur.,

Wie der Ultraschall-Entfernungsmesser die Entfernung misst

Auf der Vorderseite des Ultraschall-Entfernungsmessers befinden sich zwei Metallzylinder. Dies sind Wandler. Wandler wandeln mechanische Kräfte in elektrische Signale um. Im Ultraschall-Entfernungsmesser gibt es einen Sendewandler und einen Empfangswandler. Der sendende Wandler wandelt ein elektrisches Signal in den Ultraschallpuls um, und der empfangende Wandler wandelt den reflektierten Ultraschallpuls zurück in ein elektrisches Signal um., Wenn Sie auf die Rückseite des Entfernungsmessers schauen, sehen Sie einen IC hinter dem Sendewandler mit der Bezeichnung MAX3232. Dies ist der IC, der den Sendewandler steuert. Hinter dem Empfangswandler befindet sich ein IC mit der Bezeichnung LM324. Dies ist ein Quad-Operationsverstärker, der das vom Empfangswandler erzeugte Signal in ein Signal verstärkt, das stark genug ist, um es an den Arduino zu übertragen.,

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 und distance.
  • 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 der echoPinerkannt 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!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.