from machine import Pin, time_pulse_us
import utime
# Pines de los LEDs
led_pins = [Pin(2, Pin.OUT), Pin(3, Pin.OUT), Pin(4, Pin.OUT), Pin(5, Pin.OUT)]
# Pines del sensor ultrasónico
trig = Pin(10, Pin.OUT)
echo = Pin(11, Pin.IN)
# Inicialización del contador
counter = 0
# Función para medir la distancia
def measure_distance():
trig.low()
utime.sleep_us(2)
trig.high()
utime.sleep_us(10)
trig.low()
# Medir el tiempo del pulso
duration = time_pulse_us(echo, 1, 30000)
distance = (duration / 2) / 29.1 # Convertir a distancia en cm
return distance
# Función para actualizar los LEDs según el valor del contador
def update_leds(value):
for i in range(4):
led_pins[i].value((value >> i) & 1) # Muestra el bit correspondiente
# Bucle principal
while True:
distance = measure_distance() # Medir la distancia
print(f"Distancia: {distance:.2f} cm") # Imprimir distancia (opcional)
if distance < 10: # Si el objeto está a menos de 10 cm
counter = (counter + 1) % 16 # Incrementa el contador (0-15)
update_leds(counter) # Actualiza los LEDs
utime.sleep(0.5) # Pausa para evitar múltiples incrementos rápidos