norr@manorshi.com         +86-519-89185720
1
Nachrichtenzentrum

Wie verwende ich einen Ultraschallsensor mit Arduino?

Aufrufe: 164     Autor: Grace Veröffentlichungszeit: 26.07.2021 Herkunft: Website

Facebook-Sharing-Button
Twitter-Sharing-Button
Schaltfläche „Leitungsfreigabe“.
Wechat-Sharing-Button
LinkedIn-Sharing-Button
Pinterest-Sharing-Button
WhatsApp-Sharing-Button
Kakao-Sharing-Button
Snapchat-Sharing-Button
Schaltfläche zum Teilen von Telegrammen
Teilen Sie diese Schaltfläche zum Teilen

So verwenden Sie einen Ultraschallsensor mit Arduino: HC-SR04-Anleitung

Der Der Ultraschallsensor HC-SR04 ist eines der beliebtesten Distanzmessmodule für Arduino-Projekte. Es wird häufig in Hindernisvermeidungsrobotern, Parksensoren, Füllstandserkennung, intelligenten Mülleimern, Entfernungsmessern und anderen berührungslosen Sensoranwendungen eingesetzt.

Das Modul sendet über einen Sender 40-kHz-Ultraschallwellen aus. Wenn die Schallwelle auf ein Objekt trifft, wird sie zum Empfänger zurückreflektiert. Durch Messung der Echozeit und Nutzung der Schallgeschwindigkeit kann Arduino den Abstand zwischen Sensor und Objekt berechnen.

HC-SR04 Ultraschallsensormodul zur Arduino-Abstandsmessung

HC-SR04 Wichtigste technische Parameter

Parameter Wert
Typische Arbeitsspannung 5V DC
Statischer Arbeitsstrom Bei einigen Modulversionen weniger als 5 mA
Betriebsfrequenz 40kHz Ultraschallwelle
Erkennungsentfernung Gemeinsamer Bereich: 2 cm bis 400 cm; Einige Versionen mit angepasster Verstärkung unterstützen möglicherweise eine größere Reichweite.
Erfassungswinkel Normalerweise innerhalb von 15 Grad; Einige Versionen mit höherer Verstärkung können etwa 30 Grad erreichen.
Präzision Bis zu etwa 0,3 cm unter geeigneten Testbedingungen
Blinde Zone Mindestmessabstand ca. 2 cm

HC-SR04 Pin-Beschreibung

Das Ultraschallmodul HC-SR04 verfügt über vier Pins: VCC, TRIG, ECHO und GND. Arduino sendet einen kurzen Triggerimpuls an den TRIG-Pin und liest dann den Rückimpuls vom ECHO-Pin.

HC-SR04 Pin Arduino-Verbindung Funktion
VCC 5V Stromversorgung für das Ultraschallmodul.
TRIG Digitaler Pin 9 Triggereingang. Arduino wendet einen 10us-Impuls an, um die Entfernungsmessung zu starten.
ECHO Digitaler Pin 10 Echo-Ausgabe. Arduino liest die Impulsbreite, um die Entfernung zu berechnen.
GND GND Erdungsanschluss.

Pinbelegung des Ultraschallsensors HC-SR04 VCC TRIG ECHO GND

Funktionsprinzip des Ultraschallsensors HC-SR04

Der HC-SR04 arbeitet mit Flugzeitmessung. Arduino sendet ein Triggersignal mit hohem Pegel von mindestens 10 Mikrosekunden an den TRIG-Pin. Das Modul sendet dann automatisch acht 40-kHz-Ultraschallimpulse und wartet auf das reflektierte Echo.

Wenn das reflektierte Ultraschallsignal erkannt wird, gibt der ECHO-Pin einen Impuls mit hohem Pegel aus. Die Dauer dieses Impulses ist die Hin- und Rücklaufzeit der Ultraschallwelle.

Entfernung = Echo-Hochpegelzeit × Schallgeschwindigkeit / 2

Im Arduino-Code lautet die übliche vereinfachte Formel:

Distanz in cm = Dauer × 0,0343 / 2

Funktionsprinzip der Laufzeit des Ultraschallmoduls HC-SR04

Zeitdiagramm des Ultraschallmoduls HC-SR04

Der Timing-Prozess ist einfach: Arduino hält TRIG kurzzeitig auf Low, sendet einen 10-us-High-Impuls und setzt TRIG dann wieder auf Low zurück. Der HC-SR04 sendet einen Ultraschallstoß und setzt ECHO auf High, bis das reflektierte Signal zurückkehrt oder die Messung abläuft.

Um instabile Messwerte zu vermeiden, lassen Sie zwischen den Messungen eine kurze Verzögerung ein. Üblicherweise wird ein Messzyklus von etwa 60 ms verwendet, damit das vorherige Ultraschallecho Zeit hat, vor dem nächsten Auslöser zu verschwinden.

Grundlagen der Arduino-Programmierung: PulseIn-Funktion

Die Arduino- Funktion pulsIn() wird verwendet, um zu messen, wie lange ein digitaler Pin HIGH oder LOW bleibt. Für HC-SR04 verwendet Arduino pulseIn(echoPin, HIGH) , um die High-Pegel-Impulsbreite vom ECHO-Pin zu lesen.

Syntax Bedeutung
pulsIn(pin, Wert) Liest die Dauer eines HIGH- oder LOW-Impulses.
pulsIn(pin, wert, timeout) Liest den Impuls mit einem Timeout-Wert in Mikrosekunden.

Es wird empfohlen, ein Timeout zu verwenden. Wenn kein Echo zurückgegeben wird, kann die Funktion aufhören zu warten und 0 zurückgeben, anstatt das Programm zu lange zu blockieren.

Arduino-Board zur Verwendung mit dem Ultraschall-Abstandssensor HC-SR04

So verbinden Sie den Ultraschallsensor HC-SR04 mit Arduino

Die Verkabelung ist unkompliziert. Verbinden Sie VCC mit 5 V, GND mit GND, TRIG mit einem Arduino-Digitalausgangspin und ECHO mit einem Arduino-Digitaleingangspin. Das folgende Beispiel verwendet Arduino Uno, TRIG an Pin 9 und ECHO an Pin 10.

Schaltplan für das Arduino Uno-Steckbrett für den Ultraschallsensor HC-SR04

HC-SR04 Ultraschallsensor Arduino-Code

Das folgende typische Arduino-Programm sendet einen 10us-Triggerimpuls, liest die ECHO-Impulsbreite, berechnet die Entfernung in Zentimetern und druckt das Ergebnis im seriellen Monitor aus.

const int trigPin = 9; const int echoPin = 10; lange Dauer; float distanceCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   VerzögerungMikrosekunden(2);   digitalWrite(trigPin, HIGH);   VerzögerungMikrosekunden(10);   digitalWrite(trigPin, LOW);   Dauer = PulseIn(echoPin, HIGH, 30000);   if (duration == 0) { Serial.println('Out of range');   } else { distanceCm = Dauer * 0,0343 / 2;     Serial.print('Entfernung: ');     Serial.print(distanceCm);     Serial.println(' cm');   } Verzögerung(60); }

Wenn im seriellen Monitor Abstandswerte angezeigt werden, funktionieren der Ultraschallsensor HC-SR04 und die Arduino-Verkabelung ordnungsgemäß. Anschließend können Sie die Distanzdaten zur Hinderniserkennung, Roboterbewegungssteuerung, automatischen Türen, Parkerinnerungen oder Flüssigkeitsstandprojekten verwenden.

Arduino HC-SR04 Ultraschallsensor-Entfernungsprogramm

So verbessern Sie die Messgenauigkeit des HC-SR04

  • Halten Sie das gemessene Objekt innerhalb des empfohlenen Entfernungsbereichs und außerhalb der 2-cm-Blindzone.

  • Verwenden Sie für eine bessere Ultraschallreflexion eine ebene und feste Zieloberfläche.

  • Vermeiden Sie die Messung weicher, eckiger, poröser oder schallabsorbierender Materialien.

  • Verwenden Sie eine stabile 5-V-Stromversorgung und halten Sie die Verkabelung kurz und sicher.

  • Fügen Sie eine Zeitüberschreitung zu „pulseIn()“ hinzu, um ein langes Blockieren zu verhindern, wenn kein Echo zurückgegeben wird.

  • Durchschnittliche oder mittlere Filterung mehrerer Messwerte, um Rauschen zu reduzieren.

  • Um eine höhere Genauigkeit zu erzielen, kompensieren Sie die Temperatur, da sich die Schallgeschwindigkeit mit der Lufttemperatur ändert.

Häufige Anwendungen von Arduino-Ultraschallsensorprojekten

Anwendung Wie HC-SR04 verwendet wird
Roboter zur Hindernisvermeidung Erkennt Objekte in der Nähe und hilft dem Roboter, die Richtung zu ändern.
Parkabstandssensor Misst den Abstand zwischen dem Fahrzeug und einem Hindernis.
Erkennung des Flüssigkeitsstands Misst berührungslos den Abstand vom Sensor zur Flüssigkeitsoberfläche.
Intelligenter Mülleimer Erkennt eine Hand oder einen Gegenstand in der Nähe und löst das automatische Öffnen des Deckels aus.

Zusammenfassung

Um einen Ultraschallsensor HC-SR04 mit Arduino zu verwenden, verbinden Sie VCC mit 5 V, GND mit GND, TRIG mit einem digitalen Ausgangspin und ECHO mit einem digitalen Eingangspin. Senden Sie einen 10us-Triggerimpuls, lesen Sie die Echodauer mit pulseIn() ab und berechnen Sie die Entfernung mit der Flugzeitformel.

Der HC-SR04 ist kostengünstig, einfach zu bedienen und für viele Arduino-Entfernungsmessprojekte geeignet. Um optimale Ergebnisse zu erzielen, achten Sie auf Zieloberfläche, Messwinkel, Blindzone, stabile Leistung, Timeout-Handhabung und Temperatureffekte.

Häufig gestellte Fragen zum Arduino-Ultraschallsensor HC-SR04

Wie funktioniert der Ultraschallsensor HC-SR04 mit Arduino?

Arduino sendet einen 10us-Impuls an den TRIG-Pin. Der HC-SR04 sendet acht 40-kHz-Ultraschallimpulse aus und setzt den ECHO-Pin auf High, bis der reflektierte Schall zurückkehrt. Arduino misst diese Impulszeit und berechnet die Entfernung.

Wie lautet die Distanzformel für HC-SR04-Arduino-Projekte?

Die Formel lautet Distanz = Dauer × Schallgeschwindigkeit / 2. In Zentimetern ist eine gängige Arduino-Formel DistanzCm = Dauer × 0,0343 / 2, wobei die Dauer in Mikrosekunden gemessen wird.

Warum teilen wir das Ergebnis des Ultraschallsensors durch 2?

Die gemessene Echozeit ist die Hin- und Rücklaufzeit vom Sensor zum Objekt und zurück zum Sensor. Eine Division durch 2 ergibt den Einwegabstand zwischen dem Sensor und dem Objekt.

Welche Arduino-Pins sollte ich für TRIG und ECHO verwenden?

Sie können die meisten digitalen Arduino-Pins verwenden. In vielen Beispielen ist TRIG mit dem digitalen Pin 9 und ECHO mit dem digitalen Pin 10 verbunden. Der Code muss mit den in Ihrer Verkabelung verwendeten Pins übereinstimmen.

Warum gibt mein Ultraschallsensor HC-SR04 Null- oder Zufallswerte zurück?

Häufige Ursachen sind lose Verkabelung, instabile 5-V-Stromversorgung, falsche TRIG- oder ECHO-Pin-Nummern, kein Objekt in Reichweite, schräge Zieloberflächen, weiche Materialien, blockierte Sensorköpfe oder kein Timeout in der Funktion „pulseIn()“.

Was ist die Blindzone des Ultraschallsensors HC-SR04?

Die Blindzone ist der Mindestabstand, bei dem das Modul nicht zuverlässig messen kann. Bei HC-SR04 beträgt die Blindzone normalerweise etwa 2 cm. Nähere Objekte können zu instabilen Messwerten führen.

Kann HC-SR04 den Wasserstand mit Arduino messen?

Ja, HC-SR04 kann für einfache berührungslose Wasserstandsprojekte verwendet werden, wenn der Sensor vor Feuchtigkeit geschützt und über der Flüssigkeitsoberfläche montiert wird. Für Feucht-, Außen- oder Industrietanks wird ein wasserdichter Ultraschallsensor empfohlen.

Wie kann ich die Messwerte des Arduino-Ultraschallsensors stabiler machen?

Verwenden Sie eine stabile Stromversorgung, halten Sie den Sensor senkrecht zum Ziel, vermeiden Sie weiche oder schräge Oberflächen, fügen Sie ein PulsIn-Timeout hinzu, nehmen Sie mehrere Messungen vor, verwenden Sie die Medianfilterung und lassen Sie zwischen den Messungen etwa 60 ms liegen.

Inhaltsverzeichnis