from machine import Pin, time_pulse_us
import time

# Definir pines
TRIG_PIN = 19
ECHO_PIN = 18
LEDS = [Pin(10, Pin.OUT), Pin(11, Pin.OUT), Pin(12, Pin.OUT), Pin(13, Pin.OUT)]

trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)

def medir_distancia():
    trig.low()
    time.sleep_us(2)
    trig.high()
    time.sleep_us(10)
    trig.low()
    
    duracion = time_pulse_us(echo, 1, 30000)  # Máx. 30ms (30000us)
    if duracion < 0:
        return None
    
    distancia = (duracion * 0.0343) / 2  # Convertir a cm
    return distancia

while True:
    distancia = medir_distancia()
    
    if distancia is not None:
        distancia = max(3, min(25, distancia))  # Limitar valores entre 3 cm y 25 cm
        delay = int(30 + (250 - 30) * ((distancia - 3) / (25 - 3)))  # Mapear distancia a tiempo
        
        for led in LEDS:
            led.on()
            time.sleep_ms(delay)
            led.off()
    else:
        print("Error en la medición")
    
    time.sleep(0.1)  # Pequeña pausa
$abcdeabcde151015202530fghijfghij
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
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2