HC-SR04
SensorUltraschall-Abstandssensor. Sendet einen Schallimpuls und misst die Zeit bis das Echo zurueckkommt. Daraus berechnet man den Abstand. Funktioniert wie eine Fledermaus!
Technische Daten
| Kategorie | Abstand/Ultraschall |
|---|---|
| Schnittstelle | Digital (Trigger/Echo) |
| Pinbelegung | VCC, TRIG, ECHO, GND |
| Anzahl Pins | 4 |
| Messgroesse | Abstand |
| Messbereich | 2 cm bis 400 cm |
| Genauigkeit | +-3 mm |
| Betriebsspannung | 5.0V – 5.0V |
| Stromverbrauch | 15.0 mA |
| Datenblatt | PDF oeffnen |
Anschluss
Arduino Uno R3
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:
Vermeidung: TRIG und ECHO beschriften. Flache, harte Objekte zum Testen verwenden.
Projekte mit diesem Bauteil
Probleme mit HC-SR04?
KI-Lernhelfer fragen