from machine import Pin, UART import utime uart = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5)) led_pico = Pin(0, Pin.OUT, value=1) # Empieza encendido trig = Pin(2, Pin.OUT) echo = Pin(1, Pin.IN) def medir(): trig.low(); utime.sleep_us(2); trig.high(); utime.sleep_us(10); trig.low() start = utime.ticks_us() while echo.value() == 0: if utime.ticks_diff(utime.ticks_us(), start) > 10000: return 0 t1 = utime.ticks_us() while echo.value() == 1: if utime.ticks_diff(utime.ticks_us(), t1) > 10000: break return int((utime.ticks_diff(utime.ticks_us(), t1) * 0.0343) / 2) while True: # 1. Leer comando del botón (INSTANTÁNEO) if uart.any(): cmd = uart.read(1) if cmd == b'F': led_pico.off() elif cmd == b'N': led_pico.on() # 2. Medir y mandar distancia (Sin frenar el bucle) d = medir() if d > 0: uart.write(bytes([min(d, 255)])) utime.sleep_ms(10) # Delay mínimo para estabilidad