HC-SR04 Ultraschallsensor erklärt: Funktionsprinzip & Arduino-Integration
Ultraschall sind hochfrequente Schallwellen mit Frequenzen, die den hörbaren Bereich des normalen menschlichen Gehörs überschreiten (größer als 20 kHz). Ein Typ von Ultraschallsensor ist der HC-SR04, der Objekte in bis zu 13 ft (ca. 4 m) Entfernung erfasst. In diesem Artikel zeigen wir Ihnen, wie der Sensor funktioniert, und führen ein Arduino-Interfacing-Projekt durch.
Übersicht des HC-SR04 Ultraschall-Distanzsensors
Hardware-Übersicht
Ein HC-SR04 Ultraschallsensor (US) besteht aus zwei Ultraschallwandlern: Sender und Empfänger.
Der Empfänger wartet auf und empfängt gesendete Pulse, während der Sender elektrische Signale in Ultraschall-Schallpulse von 40 kHz umwandelt.
Spezifikationen
Die Spezifikationen umfassen:
- Abmessungen – 45 x 20 x 15 mm
- Trigger-Eingangssignal – 10 Mikrosekunden TTL-Puls
- Messwinkel – 15°
- Messgenauigkeit – 3 mm
- Minimaler Bereich – 2 cm
- Maximaler Bereich – 400 cm (Hinweis: Originaltext "4cm" ist fehlerhaft, korrigiert auf 400 cm / 4 m)
- Betriebsfrequenz – 40 kHz
- Betriebsspannung – DC 5 V
HC-SR04 Ultraschall-Distanzsensor Pinbelegung
Wir haben die Pin-Konfiguration des Ultraschallsensors HC-SR04 in der folgenden Tabelle zusammengefasst.
| Pin Nr. | Pin-Name | Pin-Beschreibung |
|---|---|---|
| 1 | Vcc | Stromversorgungspin des Sensors (5 V Versorgungsspannung). |
| 2 | Trigger / Trig | Fungiert als Eingangspin. Halten Sie ihn für 10 µs auf High, um die Messung durch Aussenden von Ultraschallwellen zu starten. |
| 3 | Echo | Fungiert als Ausgangspin. Der Echo-Pin bleibt für eine Dauer auf High, die der Zeit entspricht, die der Ultraschallpuls benötigt, um zum HC-SR04 zurückzukehren. |
| 4 | GND | Verbindet mit der Systemmasse. |
Was ist das Funktionsprinzip eines HC-SR04 Ultraschall-Entfernungssensors?
Der HC-SR04 arbeitet, indem er Ultraschall von ca. 40 kHz erzeugt, der sich durch die Luft ausbreitet. Wenn die Ultraschallpulse auf ein Hindernis oder Objekt in ihrem Ausbreitungspfad treffen, werden sie zum Sensor zurückreflektiert.
Erzeugen des Ultraschalls
Zunächst stellen Sie sicher, dass der Trig-Pin für zehn Mikrosekunden auf High-Zustand ist, wodurch ein 8-Zyklen-Ultraschallburst ausgesendet wird, der sich mit Schallgeschwindigkeit ausbreitet. Anschließend geht der Echo-Pin nach dem gesendeten Burst auf High. Danach wartet der Echo-Pin auf ein von einem Objekt reflektiertes Ultraschallwellen-Signal.
Der Echo-Pin geht nach 38 ms in Low-Zustand, wenn kein Objekt vorhanden ist.
Wenn jedoch ein Objekt einen Ultraschallpuls reflektiert, geht der Echo-Pin früher als nach 38 ms in den Low-Zustand.
Mit der Information zur Zeitdauer während des High-Zustands des Echo-Pins können wir die Distanz der Schallwellenausbreitung berechnen. Wir bestimmen auch die Distanz vom HC-SR04 zum Objekt.
Distanz = (Geschwindigkeit × Zeit) / 2
Wobei:
Zeit = Dauer, in der der Echo-Pin High war (angenommen 2 ms)
Geschwindigkeit = Schallgeschwindigkeit (340 m/s oder 34.000 cm/s)
Die Division durch zwei hilft, die Dauer der Schallwelle zu messen, die benötigt wird, um das Objekt zu erreichen, bevor sie zurückprallt.
Beispiel:
Distanz = (Geschwindigkeit × Zeit) / 2 = (34 cm/ms × 1,5 ms) / 2 = 25,5 cm
Die Distanz vom Sensor zum Objekt beträgt nun 25,5 cm.
HC-SR04 Abmessungen
Die Abmessungen des HC-SR04 Sensors sind unten dargestellt:
Beachten Sie jedoch, dass die Abmessungen aufgrund unterschiedlicher Hersteller immer leicht abweichen können.
HC-SR04 mit Arduino verbinden
Es gibt mehrere Möglichkeiten, Ihren Sensor anzuschließen, darunter I2C, Raspberry Pi und Arduino. Für heute konzentrieren wir uns auf ein Arduino-Board.
Benötigte Materialien
- Grove Ultraschall-Distanzsensor
- Grove Base Shield
- Breadboard und Jumper-Kabel
- Arduino UNO Board
Anleitung
Hardware verbinden
- Verbinden Sie den Sensor zunächst mit dem Grove Base Shield an Port D7.
- Zweitens: Stecken Sie Ihren Grove Base Shield in das Arduino Board.
- Drittens: Verbinden Sie den Arduino per USB-Kabel mit einem Computer.
Die Pin-Verbindung finden Sie in der Tabelle unten.
| Arduino UNO | HC-SR04 Ultraschallsensor |
|---|---|
| GND | GND |
| Pin 3 (oder ein anderer digitaler I/O-Pin) | Echo |
| Pin 2 (oder ein anderer digitaler I/O-Pin) | Trigger Pin |
| 5V | Vcc |
Software konfigurieren
- Suchen Sie die GitHub-Website und laden Sie die Ultrasonic Sensor Library herunter.
- Kopieren Sie den Code in die Arduino IDE, wo Sie ihn anschließend hochladen.
Der Code sieht wie folgt aus:
Code-Erläuterung
Beginnen Sie mit der Definition der Echo- und Trig-Pins, also Pin 3 (echoPin) und Pin 2 (trigPin). Weiter benötigen wir eine Integer-Variable für die Distanz und eine Long-Variable ('duration'), um die Laufzeit vom Sensor zu ermitteln.
Definieren Sie zudem den echoPin als Eingang, während der trigPin der Ausgang ist. Starten Sie dann die serielle Kommunikation, die die Ergebnisse auf dem Serial Monitor anzeigt.
Stellen Sie sicher, dass der trigPin klar ist, sodass Sie ihn für ca. zwei Mikrosekunden auf LOW-Zustand setzen können während der Loop. Heben Sie anschließend die Pin-Einstellung auf einen High-Zustand von zehn Mikrosekunden an, um eine Ultraschallwelle zu erzeugen.
Als Nächstes gibt es eine pulseIn()-Funktion mit zwei Parametern:
- Zustand des zu lesenden Pulses (Low oder High), oder
- Name des Echo-Pins.
Nutzen Sie die Funktion, um die Laufzeit zu lesen, und speichern Sie den Wert in der Variable 'duration'.
Wir setzen den echoPin auf High, da der HC-SR04 Sensor diesen automatisch auf High setzt, nachdem der 8-Zyklen-Ultraschallburst vom Sender übertragen wurde. Folglich startet die Zeitmessung, stoppt jedoch nach Empfang der reflektierten Schallwelle, da der Echo-Pin auf Low geht.
Schließlich gibt die pulseIn()-Funktion die Pulslänge in Mikrosekunden zurück.
Ab hier verwenden wir die zuvor besprochene Formel, um die Distanz zu erhalten. Daher multiplizieren wir die Dauer mit 0,034 und teilen den Wert durch zwei.
Zum Schluss geben wir den endgültigen Distanzwert aus, der auf dem Serial Monitor angezeigt wird.
Anwendungsbeschränkungen des HC-SR04
Im Vergleich zu anderen kostengünstigen Ultraschallsensoren bewerten wir den HC-SR04 als ideal für Benutzerfreundlichkeit und hohe Genauigkeit. Der Sensor kann jedoch einige Herausforderungen darstellen, wie in den folgenden Beispielen:
- Erstens kann es für den Sensor schwierig sein, weiche, unregelmäßige Oberflächenobjekte wie Stofftiere zu erkennen, da diese Schall absorbieren, aber nicht reflektieren.
- Zweitens führt eine tiefe Montage des HC-SR04 Sensors an einem Gerät oft zu reflektiertem Bodenschall, nicht vom Gerät. Auch kann ein Objekt zu klein sein, um genügend Schall zum HC-SR04 zu reflektieren.
- Drittens: Wenn die reflektierende Oberfläche des festen Objekts in einem flachen Winkel steht, reflektiert der Schall nicht zum HC-SR04.
- Schließlich: Wenn die Distanz zwischen Hindernis/Objekt und Sensor mehr als 13 ft (ca. 4 m) beträgt, gibt es keine Schallreflexion.
Fazit
Der HC-SR04 ist ein beliebter Sensor, der einfach zu interfacen, kostengünstig und stromsparend ist – ideal für batteriebetriebene Geräte. Er bietet ein breites Anwendungsspektrum, bestehend aus Distanzmessung im Bereich 2 cm bis 400 cm, Objekterkennung in der Umgebung etc.
Wenn Sie mehr über den Ultraschallsensor erfahren möchten, kontaktieren Sie uns. Wir freuen uns, von Ihnen zu hören.
Industrietechnik
- Wie Ultraschall-Reinigungsmaschinen jede Industrie transformieren
- Cloud Computing verstehen: Wie es funktioniert und warum es wichtig ist
- Kompaktes Arduino-Radar mit HC-SR04 Ultraschallsensor & 1,8″ Display
- Ultraschall-Entfernungsmesser mit Arduino UNO und SR04-Sensor bauen
- HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial
- PIR Bewegungsmelder: Funktionsweise & Arduino Integration
- 3D-Druck (Additive Fertigung): Verfahren, Materialien & Anwendungen
- Lichtbogenschweißen (Arc Welding) erklärt: Verfahren, Funktion & Vergleich
- Winkelmesser (Bevel Protractor) erklärt: Winkel messen & warum es wichtig ist
- CNC-Bohrwerke verstehen: Funktionsweise & entscheidende Vorteile