import time
from machine import Pin,PWM,ADC
led=PWM(Pin(5))
led.freq(500)
TRIG = Pin(4, Pin.OUT)
ECHO = Pin(2, Pin.IN)
def distance_cm():
# Send trigger pulse
TRIG.low()
time.sleep_us(2)
TRIG.high()
time.sleep_us(10)
TRIG.low()
# Wait for echo start
while ECHO.value() == 0:
signaloff = time.ticks_us()
# Wait for echo end
while ECHO.value() == 1:
signalon = time.ticks_us()
# Time difference
timepassed = time.ticks_diff(signalon, signaloff)
distance = (timepassed * 0.0343) / 2 # Convert to cm
return distance
# Main loop
while True:
dist = distance_cm()
print("Distance: {:.1f} cm".format(dist))
time.sleep(0.2)
# Limit distance range (e.g., 2–50 cm)
if dist > 50:
dist = 50
elif dist < 2:
dist = 2
# Map distance (2–50 cm) → LED brightness (bright when close)
duty = int((1 - (dist - 2) / 48) * 65535)
led.duty_u16(duty)
time.sleep(0.1)