← Alle Bauteile

HC-SR04

Sensor

Ultraschall-Abstandssensor. Sendet einen Schallimpuls und misst die Zeit bis das Echo zurueckkommt. Daraus berechnet man den Abstand. Funktioniert wie eine Fledermaus!

Tipps: Der Sensor hat zwei 'Augen': eins sendet, eins empfaengt. Nicht mit dem Finger abdecken! Weiche Stoffe (Kleidung, Teppich) reflektieren Ultraschall schlecht.
Frag den Lernhelfer

Technische Daten

KategorieAbstand/Ultraschall
SchnittstelleDigital (Trigger/Echo)
PinbelegungVCC, TRIG, ECHO, GND
Anzahl Pins4
MessgroesseAbstand
Messbereich2 cm bis 400 cm
Genauigkeit+-3 mm
Betriebsspannung5.0V – 5.0V
Stromverbrauch15.0 mA
DatenblattPDF oeffnen

Anschluss

Arduino Uno R3

Pins: 5V=VCC, D9=TRIG, D10=ECHO, GND=GND

Hinweise: TRIG braucht einen kurzen HIGH-Puls (10 Mikrosekunden). ECHO gibt die Laufzeit zurueck.

Codebeispiele

Abstand messen mit Ultraschall Anfaenger

Der HC-SR04 sendet einen Ultraschallpuls und misst die Zeit bis das Echo zurueckkommt. Aus der Laufzeit berechnen wir den Abstand. Schallgeschwindigkeit: 343 m/s, also braucht der Schall fuer 1 cm hin und zurueck ca. 58 Mikrosekunden.

Benoetigte Bibliotheken: Keine (nur Arduino-Standardfunktionen)

// ============================================
// HC-SR04: Abstand messen mit Ultraschall
// ============================================
// Anschluss: VCC=5V, TRIG=Pin 9, ECHO=Pin 10, GND=GND

#define TRIG_PIN 9   // Trigger-Pin: sendet den Ultraschallpuls
#define ECHO_PIN 10  // Echo-Pin: empfaengt das zurueckgeworfene Signal

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);   // Trigger ist ein Ausgang
  pinMode(ECHO_PIN, INPUT);    // Echo ist ein Eingang
  Serial.println("HC-SR04 Ultraschallsensor bereit!");
}

void loop() {
  // === Schritt 1: Ultraschallpuls senden ===
  digitalWrite(TRIG_PIN, LOW);     // Trigger zuruecksetzen
  delayMicroseconds(2);            // Kurz warten
  digitalWrite(TRIG_PIN, HIGH);    // Puls senden
  delayMicroseconds(10);           // 10 Mikrosekunden HIGH
  digitalWrite(TRIG_PIN, LOW);     // Puls beenden

  // === Schritt 2: Echo-Laufzeit messen ===
  // pulseIn() wartet bis ECHO HIGH wird und misst die Dauer in Mikrosekunden
  long laufzeit = pulseIn(ECHO_PIN, HIGH);

  // === Schritt 3: Abstand berechnen ===
  // Schall legt 343 m/s zurueck = 0.0343 cm/Mikrosekunde
  // Die gemessene Zeit ist hin UND zurueck, also durch 2 teilen
  float abstand_cm = laufzeit * 0.0343 / 2.0;

  // === Schritt 4: Ergebnis ausgeben ===
  if (abstand_cm > 0 && abstand_cm < 400) {
    Serial.print("Abstand: ");
    Serial.print(abstand_cm, 1);  // Eine Nachkommastelle
    Serial.println(" cm");
  } else {
    Serial.println("Messung ausserhalb des Bereichs (2-400 cm)");
  }

  delay(500);  // Halbe Sekunde warten
}

Haeufige Probleme

HC-SR04 zeigt immer 0 cm an

Symptom: Abstandswert ist konstant 0 oder schwankt wild

Ursache: TRIG und ECHO vertauscht, oder Objekt zu nah / zu weit

Loesung:

1. TRIG und ECHO Kabel vertauscht? TRIG = Ausgang, ECHO = Eingang 2. Objekt naeher als 2 cm? Das ist unter dem Messbereich 3. Misst du gegen eine weiche Oberflaeche? Stoff reflektiert schlecht 4. Sind die 'Augen' frei und sauber?

Vermeidung: TRIG und ECHO beschriften. Flache, harte Objekte zum Testen verwenden.

Projekte mit diesem Bauteil

Einparkhilfe (Abstandswarner) Anfaenger (Abstandsmessung)
Servo-Schranke mit Fernbedienung Mittel (Fahrzeug-Erkennung)

Probleme mit HC-SR04?

KI-Lernhelfer fragen