"""
En este ejemplo, el pin 2 se configura como salida para el LED y
el pin 4 como entrada para el botón pulsador. La variable debounce_delay
representa la cantidad de tiempo en milisegundos que esperamos
para filtrar el rebote del botón.
El ciclo principal del programa verifica constantemente el estado
del botón. Si detecta un cambio y el estado del botón se mantiene
estable dentro del tiempo de rebote, cambiará el estado del LED
según corresponda.
"""
import machine
import time
# Configuración de pines
led_pin = machine.Pin(2, machine.Pin.OUT)
button_pin = machine.Pin(4, machine.Pin.IN)
# Variables para el antirrebote
button_state = 0
last_state = 0
debounce_delay = 100
# Ciclo principal
while True:
button_state = button_pin.value()
# Verificar si ha habido un cambio en el estado del botón
if button_state != last_state:
# Esperar un tiempo para filtrar el rebote
time.sleep_ms(debounce_delay)
# Verificar nuevamente el estado del botón
if button_state != button_pin.value():
continue
# Cambiar el estado del LED
if button_state == 1:
led_pin.on()
else:
led_pin.off()
last_state = button_state