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