import machine
import utime
trigger = machine.Pin(1, machine.Pin.OUT)
echo = machine.Pin(2, machine.Pin.IN)
servo = machine.PWM(machine.Pin(6))
servo.freq(50)
def measure_distance():
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
while echo.value() == 0:
pass
pulse_start = utime.ticks_us()
while echo.value() == 1:
pass
pulse_end = utime.ticks_us()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration / 58.0
return distance
while True:
distance = measure_distance()
print("Distance:", distance, "cm")
if distance <= 300:
servo.duty_u16(5000) # 0-degree position
else:
servo.duty_u16(1500) # 90-degree position
utime.sleep(0.1) # Add a small delay between measurements