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.")