from machine import Pin, time_pulse_us
import time

# Pins für Trig und Echo konfigurieren
TRIG_PIN = 5  # GPIO Pin für Trig
ECHO_PIN = 4  # GPIO Pin für Echo

# Trig und Echo einrichten
trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)

def measure_distance():
    # Trig-Pin auf LOW setzen und warten
    trig.value(0)
    time.sleep_us(2)
    
    # Trig-Pin für 10µs auf HIGH setzen
    trig.value(1)
    time.sleep_us(10)
    trig.value(0)
    
    # Zeit messen, die das Signal braucht
    duration = time_pulse_us(echo, 1, 30000)  # Timeout nach 30ms
    
    if duration == -2:
        print("Kein Signal empfangen (Timeout).")
        return None
    elif duration == -1:
        print("Ungültiges Echo-Signal.")
        return None
    
    # Entfernung in Zentimetern berechnen
    distance = (duration / 2) / 29.1  # Schallgeschwindigkeit: ~343 m/s
    return distance

# Hauptprogramm
try:
    while True:
        distance = measure_distance()
        if distance is not None:
            print("Entfernung: {:.2f} cm".format(distance))
        else:
            print("Fehler bei der Messung.")
        
        time.sleep(1)  # Warte 1 Sekunde vor der nächsten Messung
except KeyboardInterrupt:
    print("Messung beendet.")
A4988