import machine
import utime
# Pins definieren
trig_pin = machine.Pin(28, machine.Pin.OUT)
echo_pin = machine.Pin(27, machine.Pin.IN)
red_led = machine.Pin(15, machine.Pin.OUT)
yellow_led = machine.Pin(13, machine.Pin.OUT)
green_led = machine.Pin(6, machine.Pin.OUT)
buzzer = machine.Pin(26, machine.Pin.OUT)
def measure_distance():
trig_pin.low()
utime.sleep_us(2)
trig_pin.high()
utime.sleep_us(10)
trig_pin.low()
while echo_pin.value() == 0:
signal_off = utime.ticks_us()
while echo_pin.value() == 1:
signal_on = utime.ticks_us()
time_passed = utime.ticks_diff(signal_on, signal_off)
distance = (time_passed * 0.0343) / 2 # Schallgeschwindigkeit: 343 m/s, umgerechnet auf cm/us und geteilt durch 2 (hin und zurück)
return distance
def alert(distance):
if distance < 50:
red_led.on()
yellow_led.off()
green_led.off()
buzzer.on()
elif distance < 100:
red_led.off()
yellow_led.on()
green_led.off()
buzzer.on()
utime.sleep(0.1)
buzzer.off()
utime.sleep(0.1)
elif distance < 150:
red_led.off()
yellow_led.off()
green_led.on()
buzzer.off()
else:
red_led.off()
yellow_led.off()
green_led.off()
buzzer.off()
try:
while True:
distance = measure_distance()
print("Distance:", distance, "cm")
alert(distance)
utime.sleep(0.1)
except KeyboardInterrupt:
red_led.off()
yellow_led.off()
green_led.off()
buzzer.off()
print("Programm beendet")