HC-SR04 am Raspberry Pi Pico mit MicroPython auslesen
Der HC-SR04 ist ein günstiger und weit verbreiteter Ultraschallsensor zur Abstandsmessung. In diesem Beitrag zeige ich dir, wie du das Modul an einen Raspberry Pi Pico anschließt und mit MicroPython ausliest.
Was ist der HC-SR04?
Der HC-SR04 misst Entfernungen mit Ultraschall. Nach einem kurzen Triggerimpuls sendet das Modul einen Ultraschallburst aus und setzt den ECHO-Pin auf HIGH. Die Länge dieses ECHO-Impulses entspricht der Laufzeit des Schallsignals. Daraus lässt sich der Abstand berechnen.
Wichtiger Hinweis zum Raspberry Pi Pico
Der Raspberry Pi Pico arbeitet mit 3,3 Volt Logik. Das HC-SR04-Modul wird typischerweise mit 5 Volt betrieben, und der ECHO-Ausgang kann ebenfalls mit 5 Volt arbeiten. Deshalb sollte das ECHO-Signal nicht direkt an einen GPIO des Pico angeschlossen werden.
Verwende bitte einen Spannungsteiler, damit aus dem 5V-ECHO-Signal ein sicheres 3,3V-Signal für den Pico wird.
Benötigte Teile
- Raspberry Pi Pico
- HC-SR04 Ultraschallsensor
- Jumper-Kabel
- 2 Widerstände für den Spannungsteiler, zum Beispiel 1 kΩ und 2 kΩ
- MicroPython auf dem Pico
Verdrahtung
- HC-SR04 VCC → VBUS / 5V am Pico
- HC-SR04 GND → GND
- HC-SR04 TRIG → GP3
- HC-SR04 ECHO → GP2 über Spannungsteiler
Beispiel für den Spannungsteiler:
ECHO vom Sensor → 1 kΩ → Messpunkt zum Pico GP2 → 2 kΩ → GND
So funktioniert die Messung
Der Sensor startet eine Messung, wenn am TRIG-Pin ein HIGH-Impuls von mindestens 10 Mikrosekunden anliegt. Danach sendet das Modul Ultraschall aus. Der ECHO-Pin bleibt so lange auf HIGH, bis das Signal reflektiert zurückkommt. Genau diese Zeit messen wir im Python-Programm.
MicroPython-Programm für den Raspberry Pi Pico
from machine import Pin, time_pulse_us
from time import sleep_us, sleep_ms
# Pins anpassen
TRIG_PIN = 3
ECHO_PIN = 2
trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)
trig.value(0)
sleep_ms(2)
def measure_distance_cm():
# Triggerimpuls erzeugen
trig.low()
sleep_us(2)
trig.high()
sleep_us(10)
trig.low()
# ECHO-Pulsdauer messen
duration = time_pulse_us(echo, 1, 30000) # Timeout 30 ms
# Fehler abfangen
if duration < 0:
return None, duration
# Distanz berechnen
# Schallgeschwindigkeit ca. 343 m/s = 34300 cm/s
# Hin- und Rückweg des Signals -> durch 2 teilen
distance_cm = (duration / 1000000) * 34300 / 2
return distance_cm, duration
while True:
distance, pulse_us = measure_distance_cm()
if distance is None:
print("Kein Echo / Timeout, Code:", pulse_us)
else:
print("Echo:", pulse_us, "us | Abstand:", round(distance, 2), "cm")
sleep_ms(500)
Erklärung zum Code
Zuerst definieren wir die beiden Pins für TRIG und ECHO. Anschließend wird in der Funktion measure_distance_cm() ein kurzer Triggerimpuls erzeugt. Mit time_pulse_us() misst MicroPython dann die Länge des HIGH-Pulses am ECHO-Pin in Mikrosekunden.
Aus dieser Pulsdauer wird der Abstand in Zentimetern berechnet. Da das Schallsignal den Weg zum Objekt und wieder zurück zurücklegt, wird das Ergebnis durch 2 geteilt.
Beispielausgabe
Echo: 1450 us | Abstand: 24.87 cm
Echo: 1448 us | Abstand: 24.84 cm
Echo: 1452 us | Abstand: 24.91 cm
Typische Fehlerquellen
- ECHO direkt an den Pico angeschlossen statt über Spannungsteiler
- TRIG und ECHO vertauscht
- Kein gemeinsamer GND zwischen Pico und Sensor
- Zu großes oder schlecht reflektierendes Objekt
- Objekt außerhalb des Messbereichs
Fazit
Der HC-SR04 lässt sich mit wenigen Bauteilen problemlos am Raspberry Pi Pico betreiben. Mit MicroPython ist die Auswertung besonders einfach, und das Modul eignet sich sehr gut für Robotik, Abstandswarnung oder Hinderniserkennung.
Im nächsten Schritt kann man die gemessenen Werte zum Beispiel auf einem Display anzeigen, per WLAN versenden oder zur Steuerung eines Roboters verwenden.
-
Anschlus de HC-SR04 an die PI Familie
HC-SR04 sicher am Raspberry Pi Pico anschließen Der HC-SR04 ist ein beliebter Ultraschallsensor zur Abstandsmessung. Er wird in der Regel mit 5 Volt betrieben und liefert am ECHO-Pin ebenfalls ein 5V-Signal. Genau…
-
Der PI Pico2W und das Echolot HC-SR04
HC-SR04 am Raspberry Pi Pico mit MicroPython auslesen Der HC-SR04 ist ein günstiger und weit verbreiteter Ultraschallsensor zur Abstandsmessung. In diesem Beitrag zeige ich dir, wie du das Modul an einen Raspberry…
-
Den Pico 2W in Betrieb nehmen
Blog Die offiziellen Schritte sind eindeutig: Für den Pico läuft typischerweise MicroPython, nicht ein normales Linux mit CPython. Der Pico wird per UF2-Firmware geflasht; dabei erscheint er im BOOTSEL-Modus als Laufwerk RPI-RP2.…

Schreibe einen Kommentar