from machine import Pin, Timer
import time
BUTTON_PIN = 12
LED_PIN = 14
button_pressed_time = 0
timer = Timer(0)
led = Pin(LED_PIN, Pin.OUT)
button = Pin(BUTTON_PIN, Pin.IN)
def button_handler(pin):
global button_pressed_time
if button.value() == 1:
button_pressed_time = time.ticks_ms()
timer.init(period=50, mode=Timer.PERIODIC, callback=check_hold_time)
else:
timer.deinit()
led.off()
def check_hold_time(timer):
global button_pressed_time
if button.value() == 1:
hold_time = time.ticks_diff(time.ticks_ms(), button_pressed_time)
if hold_time >= 3000:
led.on()
else:
timer.deinit()
button.irq(trigger=Pin.IRQ_RISING | Pin.IRQ_FALLING, handler=button_handler)