from machine import Pin, PWM, time_pulse_us
import time
# 腳位設定
TRIG = Pin(3, Pin.OUT)
ECHO = Pin(2, Pin.IN)
buzzer = PWM(Pin(21))
def get_distance():
TRIG.low()
time.sleep_us(2)
TRIG.high()
time.sleep_us(10)
TRIG.low()
duration = time_pulse_us(ECHO, 1, 30000)
distance = (duration / 2) / 29.1 # cm
return distance
def beep(freq, duration):
buzzer.freq(freq)
buzzer.duty_u16(30000)
time.sleep(duration)
buzzer.duty_u16(0)
while True:
dist = get_distance()
print("當前距離: {:.1f} cm".format(dist))
if dist > 100:
buzzer.duty_u16(0)
time.sleep(0.1)
elif 30 <= dist <= 100:
beep(500, 0.5)
time.sleep(0.5)
elif 10 <= dist < 30:
beep(750, 0.3)
time.sleep(0.3)
else: # < 10 cm
buzzer.freq(1000)
buzzer.duty_u16(30000)
time.sleep(0.1)