
Was brauchst du?
Schritt 1: Anschließen des HC-SR04 an den Raspberry Pi Pico
Der HC-SR04 Ultraschallsensor benötigt vier Verbindungen zum Raspberry Pi Pico: Stromversorgung, Masse sowie zwei Steuerleitungen – TRIG und ECHO.
- VCC: Dieser Pin versorgt den Sensor mit Strom. Der HC-SR04 kann mit 5V oder 3.3V betrieben werden. Da der Raspberry Pi Pico mit 3.3V arbeitet, sollte möglichst die 3.3V-Versorgung genutzt werden.
- GND: Der Masseanschluss (GND) muss mit einem GND-Pin des Pico verbunden werden.
- TRIG: Dies ist der Eingang des Sensors. Um eine Messung zu starten, muss der Raspberry Pi Pico für mindestens 10 Mikrosekunden ein HIGH-Signal an diesen Pin senden. Dadurch sendet der HC-SR04 einen Ultraschallimpuls aus.
- ECHO: Dies ist der Ausgang des Sensors. Nachdem der Ultraschallimpuls auf ein Hindernis trifft und zurückkommt, setzt der HC-SR04 diesen Pin auf HIGH. Die Dauer des HIGH-Signals entspricht der Zeit, die das Signal für den Hin- und Rückweg benötigt.
Wichtig: Der ECHO-Pin gibt ein 5V-Signal aus, während der Raspberry Pi Pico nur 3.3V verarbeiten kann. Um Schäden zu vermeiden, sollte ein Spannungsteiler mit zwei Widerständen (z. B. 1kΩ und 2kΩ) oder ein Logik-Level-Shifter verwendet werden.
Schritt 2: Abstand messen mit dem HC-SR04
Sobald der Sensor angeschlossen ist, kann der Raspberry Pi Pico die Entfernung zu einem Objekt berechnen. Der folgende MicroPython-Code steuert den HC-SR04 an und gibt die gemessene Distanz in Zentimetern aus:
import machine
import utime
# Pins definieren
TRIG_PIN = 3
ECHO_PIN = 2
trig = machine.Pin(TRIG_PIN, machine.Pin.OUT)
echo = machine.Pin(ECHO_PIN, machine.Pin.IN)
def messen():
# Triggersignal senden
trig.low()
utime.sleep_us(2)
trig.high()
utime.sleep_us(10)
trig.low()
# Warte auf ECHO HIGH
while echo.value() == 0:
signal_start = utime.ticks_us()
# Warte auf ECHO LOW
while echo.value() == 1:
signal_end = utime.ticks_us()
# Zeitdifferenz berechnen
signal_duration = utime.ticks_diff(signal_end, signal_start)
# Entfernung berechnen (Schallgeschwindigkeit = 343m/s)
distance = (signal_duration * 0.0343) / 2 # in cm
return distance
# Messwerte ausgeben
while True:
dist = messen()
print("Entfernung: {:.2f} cm".format(dist))
utime.sleep(1)
Erklärung des Codes
- Trigger-Puls senden: Der TRIG-Pin wird für 10 Mikrosekunden auf HIGH gesetzt, damit der Sensor einen Ultraschallimpuls aussendet.
- Echo-Zeit messen: Der Code misst, wie lange der ECHO-Pin auf HIGH bleibt – das entspricht der Zeit, die das Signal für den Hin- und Rückweg benötigt.
- Entfernung berechnen: Die Schallgeschwindigkeit (343 m/s) wird genutzt, um die Distanz in Zentimetern zu bestimmen.
- Messwerte ausgeben: Die Entfernung wird jede Sekunde im Terminal ausgegeben.
Mit diesem Code kann der Raspberry Pi Pico Entfernungen messen und ausgeben – ideal für Hinderniserkennung oder Abstandsmessungen!
Schritt 3: Mögliche Anwendungen
Der HC-SR04 Ultraschallsensor kann für viele spannende Projekte mit dem Pi Pico genutzt werden, insbesondere wenn es um die Abstandsmessung geht. Hier sind einige mögliche Anwendungen:
- Hinderniserkennung für Roboter: Der Sensor kann verwendet werden, um Hindernisse zu erkennen und einem Roboter zu ermöglichen, ihnen auszuweichen.
- Füllstandsmessung: In Tanks oder Behältern kann der Sensor den Füllstand von Flüssigkeiten oder Materialien erfassen.
- Parkassistent: Ein Abstandssensor kann in Parksysteme integriert werden, um Fahrzeuge beim Einparken zu unterstützen.
- Personenzähler: Durch die Erkennung von Bewegungen kann der Sensor als einfache Zählvorrichtung für Personen oder Objekte genutzt werden.
Diese Anwendungen zeigen, wie vielseitig der HC-SR04 ist – von einfachen Experimenten bis hin zu komplexen Projekten!