from machine import Pin, PWM
import utime

TRIG = Pin(3, Pin.OUT)
ECHO = Pin(2, Pin.IN)
led = PWM(Pin(15)) 
led.freq(1000)  

def get_distance():
    TRIG.low()
    utime.sleep_us(2)
    TRIG.high()
    utime.sleep_us(10)
    TRIG.low()

    signal_off = utime.ticks_us()  # Initialize to avoid errors
    signal_on = utime.ticks_us()

    while ECHO.value() == 0:
        signal_off = utime.ticks_us()
    while ECHO.value() == 1:
        signal_on = utime.ticks_us()

    time_passed = signal_on - signal_off
    distance = (time_passed * 0.0343) / 2  # Convert to cm
    return distance

while True:
    dist = get_distance()
    print("Distance:", dist, "cm")

    if dist > 100:
        brightness = 0  
    else:
        brightness = int((1 - (dist / 100)) * 65535)  

    led.duty_u16(brightness)  
    utime.sleep(0.1)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
led1:A
led1:C
r1:1
r1:2