Arduino - Ultraschallsensor
In diesem Tutorial werden wir lernen:
- Wie der Ultraschallsensor funktioniert
- Wie man den Ultraschallsensor mit Arduino verbindet
- Wie man den Arduino programmiert, um den Zustand des Ultraschallsensors auszulesen
- Wie man Arduino und den Ultraschallsensor HC-SR04 verwendet, um die Entfernung zu einem Objekt zu messen
- Wie man das Rauschen bei Entfernungsmessungen des Ultraschallsensors im Arduino-Code filtert
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Ultraschallsensor
Der Ultraschallsensor HC-SR04 wird verwendet, um den Abstand zu einem Objekt mithilfe von Ultraschallwellen zu messen.
Pinbelegung
Der Ultraschallsensor HC-SR04 verfügt über vier Pins:
- VCC-Pin: muss mit VCC (5 V) verbunden werden
- GND-Pin: muss mit GND (0 V) verbunden werden
- TRIG-Pin: Dieser Pin empfängt das Steuersignal (Impuls) vom Arduino.
- ECHO-Pin: Dieser Pin sendet ein Signal (Impuls) an den Arduino. Der Arduino misst die Pulsdauer, um die Entfernung zu berechnen.

Wie es funktioniert
- Mikrocontroller: erzeugt einen 10-Mikrosekunden-Puls am TRIG-Pin.
- Der Ultraschallsensor sendet automatisch Ultraschallwellen aus.
- Die Ultraschallwelle wird nach dem Auftreffen auf ein Hindernis reflektiert.
- Der Ultraschallsensor:
- Erkennt die reflektierte Ultraschallwelle.
- Misst die Laufzeit der Ultraschallwelle.
Wie man den Abstand vom Ultraschallsensor bestimmt
Um die Distanz vom Ultraschallsensor zu erhalten, müssen wir nur zwei Schritte durchführen (1 und 6 im Abschnitt Wie es funktioniert).
- Erzeugt einen 10-Mikrosekunden-Puls am TRIG-Pin
- Misst die Pulsdauer am ECHO-Pin und berechnet dann den Abstand zwischen Sensor und Hindernis
Distanzberechnung
Wir haben:
- Die Reisezeit der Ultraschallwelle (μs): travel_time = pulse_duration
- Die Geschwindigkeit der Ultraschallwelle: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/μs
Also:
- Die Ausbreitungsdistanz der Ultraschallwelle (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- Der Abstand zwischen Sensor und Hindernis (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
Arduino - Ultraschallsensor
Arduino-Pins können einen 10-Mikrosekunden-Puls erzeugen und die Pulsdauer messen. Daher können wir den Abstand zum Ultraschallsensor bestimmen, indem wir zwei Arduino-Pins verwenden:
- Ein Pin ist mit dem TRIG-PIN verbunden, um einen 10-µs-Puls an den TRIG-PIN des Sensors zu erzeugen
- Ein weiterer Pin ist mit dem ECHO-PIN verbunden, um den Puls vom Sensor zu messen
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
So programmiert man einen Ultraschallsensor
- Erzeuge einen 10-Mikrosekunden-Puls an einem Arduino-Pin durch die Verwendung der Funktionen digitalWrite() und delayMicroseconds(). Zum Beispiel Pin 9:
- Misst die Pulsdauer (µs) an einem Arduino-Pin mithilfe der pulseIn()-Funktion. Zum Beispiel Pin 8:
- Entfernung berechnen (cm):
Arduino-Code
Schnelle Schritte
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino hochzuladen

- Öffnen Sie den seriellen Monitor
- Bewegen Sie Ihre Hand vor dem Ultraschallsensor
- Sehen Sie die Entfernung vom Sensor zu Ihrer Hand im seriellen Monitor
Code-Erklärung
Sie finden die Erklärung in den Kommentaren des obigen Arduino-Codes.
Wie man Rauschen aus Distanzmessungen eines Ultraschallsensors filtert
Das Messergebnis des Ultraschallsensors enthält Rauschen. In einigen Anwendungen führt das verrauschte Messergebnis zu einem unerwünschten Betrieb. Wir können Rauschen entfernen, indem wir den folgenden Algorithmus verwenden:
- Mehrere Messungen durchführen und in einem Array speichern
- Das Array in aufsteigender Reihenfolge sortieren
- Rauschen filtern
- Die kleinsten Messwerte werden als Rauschen betrachtet → ignorieren
- Die größten Messwerte werden als Rauschen betrachtet → ignorieren
- ⇒ Den Durchschnitt der mittleren Messwerte berechnen
- Die fünf kleinsten Messwerte werden als Rauschen betrachtet – ignorieren Sie sie.
- Die fünf größten Messwerte werden als Rauschen betrachtet – ignorieren Sie sie.
- ⇒ Berechnen Sie den Durchschnitt der zehn mittleren Messwerte (von der 5. bis zur 14. Messung).
Der untenstehende Beispielcode führt 20 Messungen durch.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fordere dich heraus
Verwenden Sie einen Ultraschallsensor, um eines der folgenden Projekte durchzuführen:
- Kollisionsvermeidung für RC-Auto.
- Erkennung des Füllstands des Mülleimers.
- Überwachung des Füllstands des Mülleimers.
- Automatisches Öffnen und Schließen des Mülleimers. Hinweis: Siehe Arduino - Servo-Motor.
Zusätzliches Wissen
Einige Hersteller liefern Ultraschallsensoren, die drei Pins haben. TRIG-Signal und ECHO-Signal befinden sich an demselben Pin. In diesem Fall müssen wir nur einen Arduino-Pin für beide Zwecke verwenden: einen Impuls an den Sensor senden und den Impuls vom Sensor messen.
Ultraschallsensor-Anwendungen
- Kollisionsvermeidung
- Füllstandserkennung
- Füllstandmessung
- Näherungserkennung