Skip to content
Snippets Groups Projects
hc_sr04.py 1.26 KiB
# Den HC-SR04 mit einem Raspberry Pi 4 unter Ubuntu auslesen

import RPi.GPIO as GPIO
import time

# Pin-Definitionen (Passe sie an dein Setup an)
TRIG_PIN = 2  # Pin für TRIG
ECHO_PIN = 3  # Pin für ECHO

# GPIO konfigurieren
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG_PIN, GPIO.OUT)
GPIO.setup(ECHO_PIN, GPIO.IN)

def get_distance():
    """
    Misst die Entfernung mithilfe des HC-SR04 Sensors.
    Gibt die Entfernung in Zentimetern zurück.
    """
    # Trigger-Puls erzeugen
    GPIO.output(TRIG_PIN, True)
    time.sleep(0.00001)  # 10 µs Pulse
    GPIO.output(TRIG_PIN, False)

    # Warte auf den Start des ECHO-Signals
    while GPIO.input(ECHO_PIN) == 0:
        start_time = time.time()

    # Warte auf das Ende des ECHO-Signals
    while GPIO.input(ECHO_PIN) == 1:
        end_time = time.time()

    # Zeitdifferenz berechnen
    duration = end_time - start_time

    # Entfernung berechnen (Schallgeschwindigkeit = 34300 cm/s)
    distance = (duration * 34300) / 2  # Hin- und Rückweg beachten
    return distance

try:
    while True:
        dist = get_distance()
        print(f"Gemessene Entfernung: {dist:.2f} cm")
        time.sleep(1)  # Wartezeit zwischen Messungen

except KeyboardInterrupt:
    print("Messung beendet")
    GPIO.cleanup()  # GPIO sauber freigeben