#27Anfänger

HC-SR04 Abstandsmessung (serielle Anzeige)

4.6(44)
64 abgeschlossen
HC-SR04 Abstandsmessung (serielle Anzeige)
HC-SR04 Ultraschallsensor zur Abstandsmessung und Anzeige des Ergebnisses in cm auf dem seriellen Monitor. Er lehrt das Prinzip der Abstandsberechnung mit Schallwellen.

Video

Schaltplan

HC-SR04 Abstandsmessung (serielle Anzeige) - Circuit

Quellcode

Arduino (C++)
1int echoPin = 6;
2int trigPin = 7;
3int maxDistance = 100;
4int minDistance = 3;
5
6void setup() {
7  pinMode(trigPin, OUTPUT);
8  pinMode(echoPin, INPUT);
9  Serial.begin(9600); 
10}
11
12void loop() {
13  digitalWrite(trigPin, HIGH);
14  delayMicroseconds(10);
15  digitalWrite(trigPin, LOW);
16  
17  unsigned long duration = pulseIn(echoPin, HIGH);
18  double totalPath = (double)duration * 0.034;
19  int distance = totalPath / 2;
20  
21  if (distance > minDistance && distance < maxDistance) {
22    Serial.print("Distance: ");
23    Serial.print(distance);
24    Serial.println("cm");
25  }
26  
27  delay(500);
28}

FAQ

Wie misst der HC-SR04 die Entfernung?▾

Der Sensor sendet eine Schallwelle mit einer Frequenz von 40 kHz aus und misst die Laufzeit des Echos. Schall breitet sich in der Luft mit einer Geschwindigkeit von etwa 343 m/s aus; die Entfernung wird mit der Formel „Entfernung = Zeit × 0,0343 / 2“ in Zentimeter umgerechnet (die Division durch 2 berücksichtigt den Hin- und Rückweg).

Was ist die kürzeste und die längste Entfernung, die er messen kann?▾

In der Praxis misst das Gerät Entfernungen zwischen etwa 2 cm und 400 cm. Bei Entfernungen unter 2 cm sowie bei sehr großen Entfernungen oder auf schallabsorbierenden Oberflächen (Stoff, Schaumstoff) können die Messwerte fehlerhaft sein oder den Wert 0 anzeigen.

Manchmal werden Werte von 0 oder sehr große Werte angezeigt – warum?▾

Wenn kein Echo zurückkommt, läuft „pulseIn“ ab. Stelle sicher, dass der Sensor auf eine ebene und harte Oberfläche gerichtet ist, warte zwischen den Messungen mindestens 60 ms und filtere fehlerhafte Messwerte im Code heraus.

Kann ich es mit dem ESP32 verwenden?▾

Der HC-SR04 wird mit 5 V betrieben und der ECHO-Pin liefert eine Ausgangsspannung von 5 V. Da der ESP32 mit 3,3-V-Logik arbeitet, musst du einen Spannungsteiler (z. B. 1 kΩ + 2 kΩ) in die ECHO-Leitung einbauen oder das 3,3-V-kompatible Modell HC-SR04P verwenden.

HC-SR04 Abstandsmessung (serielle Anzeige) | BlueGrays