Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] HC-SR04 Ultraschallsensor – Erfahrungen, Grenzen und kleiner Praxisvergleich



Danieldsouza
12.08.2026, 13:10
Hallo zusammen,

ich wollte mal meine Erfahrungen mit dem HC-SR04 teilen, nachdem ich ihn in mehreren Projekten eingesetzt habe – von einem einfachen Hinderniserkenner bis hin zu einem kleinen Kartierungsroboter.

Kurz zur Theorie für alle, die gerade einsteigen:

Der HC-SR04 arbeitet nach dem Echolotprinzip. Der Trigger-Pin sendet einen 10-µs-Puls, woraufhin das Modul 8 Ultraschallbursts bei 40 kHz aussendet. Der Echo-Pin gibt dann ein HIGH-Signal zurück, dessen Dauer proportional zur gemessenen Distanz ist. Die Formel:

Distanz (cm) = Pulsdauer (µs) / 58

Das Modul deckt laut Datenblatt 2 cm bis 400 cm ab, mit einer Auflösung von ca. 0,3 cm. In der Praxis habe ich bei Distanzen über 250 cm leichte Instabilitäten bemerkt, was wohl auf Signalabschwächung zurückzuführen ist.

Was ich in der Praxis beobachtet habe:


Toter Winkel unter 2 cm: Objekte darunter werden nicht erkannt. Bei meinem Hindernisroboter habe ich deswegen einen IR-Sensor als zweite Absicherung ergänzt.
Messwinkel ~15°: Der Kegel ist recht schmal. Für Kartierungsaufgaben habe ich den Sensor auf einem Servomotor montiert und in 5°-Schritten geschwenkt – funktioniert gut.
Interferenz bei mehreren Sensoren: Wenn man zwei HC-SR04 parallel betreibt, können sie sich gegenseitig stören. Lösung: Trigger-Signale zeitlich versetzen (mindestens 60 ms Abstand zwischen den Messungen).
5V-Ausgang: Wer den Sensor mit einem Raspberry Pi verbinden will, braucht einen Spannungsteiler oder Pegelwandler, da die GPIO-Pins des Pi nur 3,3V vertragen.


Einfacher Arduino-Code (zum Diskutieren):

const int trigPin = 9;
const int echoPin = 10;

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

long duration = pulseIn(echoPin, HIGH);
float distance = duration / 58.0;

Serial.print("Distanz: ");
Serial.print(distance);
Serial.println(" cm");
delay(100);
}

Ich habe übrigens einen dieser Sensoren bei einem indischen Elektronikanbieter bestellt – Lieferung aus Asien dauert, aber der Preis war sehr günstig. Falls jemand einen Link zu einem Datenblatt oder einer besseren Bibliothek kennt (NewPing z. B. ist schon ein Klassiker), immer her damit.

Meine Fragen an die Community:


Hat jemand Erfahrungen mit dem HC-SR04 unter Wasseroberfläche oder in feuchten Umgebungen? Laut Datenblatt ist er dafür nicht gedacht, aber ich habe Berichte gesehen, dass es bei kurzen Distanzen klappen soll.
Gibt es einen nennenswerten Qualitätsunterschied zwischen verschiedenen Herstellern / Chargen, oder ist die Schaltung so simpel, dass das kaum eine Rolle spielt?
Für einen autonomen Roboter mit Rundumblick: Lieber 4 fest montierte HC-SR04 oder einen rotierenden? Was habt ihr in euren Projekten gemacht?


Hier noch ein Link zur Produktseite, die ich als Referenz für die Pinbelegung genutzt habe:
HC-SR04 Ultrasonic Sensor – Pinout & Specs (https://robocraze.com/products/hc-sr-04-ultrasonic-sensor)

Freue mich auf eure Erfahrungen!

Viele Grüße