Ultraschallsensor (HC-SR04) mit dem Raspberry Pi Pico

Was brauchst du?

  • Raspberry Pi Pico
  • Micro-USB-Kabel
  • HC-SR04 Ultraschallsensor
  • Jumper-Kabel

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!