Arduino Nano - Ultraschallsensor
Dieses Tutorial zeigt dir, wie du den Arduino Nano und einen Ultraschallsensor verwendest, um den Abstand zu Hindernissen oder Objekten zu messen. Im Detail werden wir Folgendes lernen:
- Wie ein Ultraschallsensor funktioniert
- Wie man den Ultraschallsensor mit dem Arduino Nano verbindet
- Wie man den Arduino Nano programmiert, um die Entfernung mit dem Ultraschallsensor zu messen
- Wie man Rauschen aus den Entfernungsmessungen des Ultraschallsensors im Code für den Arduino Nano herausfiltert
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Ultraschallsensor
Der HC-SR04 Ultraschallsensor dient dazu, den Abstand zu einem Objekt mithilfe von Ultraschallwellen zu messen.
Die Pinbelegung des Ultraschallsensors
Der HC-SR04 Ultraschallsensor hat vier Pins:
- VCC-Pin: muss mit VCC (5V) verbunden werden
- GND-Pin: muss mit GND (0V) verbunden werden
- TRIG-Pin: empfängt ein Steuersignal (Impuls) vom Arduino Nano
- ECHO-Pin: sendet ein Signal (Impuls) an den Arduino Nano. Der Arduino Nano misst die Länge des Impulses, um die Entfernung zu berechnen.

Wie es funktioniert
- Der Arduino Nano erzeugt einen 10-Mikrosekunden-Puls am TRIG-Pin, der den Ultraschallsensor dazu veranlasst, Ultraschallwellen auszusenden.
- Wenn die Wellen auf ein Hindernis treffen, werden sie zurückreflektiert.
- Der Ultraschallsensor ist in der Lage, die reflektierte Welle zu erkennen und ihre Laufzeit zu messen.
- Der Sensor erzeugt dann einen Impuls am ECHO-Pin, dessen Dauer der Ausbreitungszeit der Ultraschallwelle entspricht.
- Der Arduino Nano misst die Impulsdauer am ECHO-Pin und berechnet die Entfernung zwischen dem Sensor und dem Hindernis.
Wie man Abstand vom Ultraschallsensor erhält
Um den Abstand vom Ultraschallsensor zu berechnen, müssen wir einfach Arduino-Code schreiben, um zwei Schritte auszuführen (1 und 6 auf Wie es funktioniert):
- Arduino Nano erzeugt einen 10-Mikrosekunden-Puls am TRIG-Pin.
- Arduino Nano misst die Pulsdauer am ECHO-Pin.
- Anschließend verwendet der Arduino Nano die gemessene Pulsdauer, um die Entfernung zwischen dem Sensor und dem Hindernis zu berechnen.
Distanzberechnung
Wir haben:
- Die Ausbreitungszeit der Ultraschallwelle (µs): travel_time = pulse_duration
- Die Geschwindigkeit der Ultraschallwelle: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Also:
- Die Laufstrecke 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 Nano - Ultraschallsensor
Die Pins des Arduino Nano können einen 10-Mikrosekunden-Puls erzeugen und die Pulsdauer messen. Damit können wir zwei Pins des Arduino Nano verwenden, um die Entfernung vom Ultraschallsensor zu einem Objekt zu bestimmen. Wir müssen nur Folgendes tun:
- Verbinden Sie einen Pin des Arduino Nano mit dem TRIG-Pin des Ultraschallsensors. Dieser Pin des Arduino Nano wird verwendet, um einen 10-µs-Puls an den TRIG-Pin des Sensors zu erzeugen.
- Verbinden Sie einen weiteren Pin des Arduino Nano mit dem ECHO-Pin des Ultraschallsensors. Dieser Pin des Arduino Nano wird verwendet, um den Puls des Sensors zu messen.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.
Wie man einen Ultraschallsensor programmiert
- Erzeuge einen 10-Mikrosekunden-Puls am Arduino-Pin 3 durch die Verwendung der Funktionen digitalWrite() und delayMicroseconds(). Zum Beispiel:
- Miss die Pulsdauer (in Mikrosekunden) am Arduino-Pin 2, indem du die Funktion pulseIn() verwendest. Zum Beispiel:
- Berechnen Sie die Entfernung (cm):
Arduino Nano Quellcode
Schnelle Schritte
- Kopieren Sie den Code und öffnen Sie ihn mit der Arduino IDE.
- Klicken Sie dann in der Arduino IDE auf die Schaltfläche Hochladen, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.

- Öffnen Sie den Serial Monitor
- Legen Sie Ihre Hand vor dem Ultraschallsensor hin
- Prüfen Sie die Entfernung vom Sensor zu Ihrer Hand, die im Serial Monitor angezeigt wird
Quellcode-Erklärung
Schau dir die zeilenweise Erklärung in den Kommentaren des Quellcodes an!
Wie man Rauschen aus Distanzmessungen eines Ultraschallsensors herausfiltert
Das Messergebnis eines Ultraschallsensors kann Rauschen enthalten, was in einigen Anwendungen zu unerwünschten Abläufen führen kann. Um das Rauschen zu entfernen, können wir den folgenden Algorithmus verwenden:
- Nehmen Sie mehrere Messungen vor und speichern Sie sie in einem Array
- Sortieren Sie das Array in aufsteigender Reihenfolge
- Filtern Sie Rauschen heraus durch:
- Die kleinsten Messwerte werden als Rauschen betrachtet und sollten ignoriert werden
- Die größten Messwerte werden als Rauschen betrachtet und sollten ignoriert werden
- Es sollte der Mittelwert der mittleren Messwerte genommen werden
- Ignoriere die fünf kleinsten Proben.
- Ignoriere die fünf größten Proben.
- Berechne den Durchschnitt der zehn mittleren Proben vom fünften bis zum vierzehnten.
Der folgende 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 für eines der folgenden Projekte einen Ultraschallsensor:
- Der Aufbau eines Systems zur Kollisionsvermeidung für ein ferngesteuertes Auto.
- Bestimmung des Füllstands einer Mülltonne.
- Überwachung des Füllstands einer Mülltonne.
- Automatisches Öffnen und Schließen einer Mülltonne. Hinweis: Siehe Arduino Nano - Servo Motor.
Ultraschallsensor-Anwendungen
- Kollisionen vermeiden
- Füllstand erkennen
- Füllstand messen
- Nähe erkennen