from machine import Pin, Timer
import time
//# Configurações de GPIO
GPIO_BOTAO = 5
GPIO_LED = 23
TEMPO_DEBOUNCE = 10 #// Em milissegundos
//# Variáveis globais
contador_acionamentos = 0
timestamp_ultimo_acionamento = 0
led_state = False
//# Configuração dos pinos
botao = Pin(GPIO_BOTAO, Pin.IN, Pin.PULL_UP)
led = Pin(GPIO_LED, Pin.OUT)
led.value(0) # LED começa apagado
//Função de interrupção para o botão
def funcao_ISR(p):
global contador_acionamentos, timestamp_ultimo_acionamento
atual = time.ticks_ms()
if time.ticks_diff(atual, timestamp_ultimo_acionamento) >= TEMPO_DEBOUNCE:
contador_acionamentos += 1
timestamp_ultimo_acionamento = atual
//# Função de interrupção para o temporizador
def alternar_led(timer):
global led_state
led_state = not led_state
led.value(led_state)
//#/ Configura interrupção no botão
botao.irq(trigger=Pin.IRQ_FALLING, handler=funcao_ISR)
//# Configura o temporizador
temporizador = Timer(0)
temporizador.init(period=1000, mode=Timer.PERIODIC, callback=alternar_led)
//# Loop principal
while True:
print("Acionamentos do botão:", contador_acionamentos)
time.sleep(1)