Programmer un bouton par interruptions

Le montage

Le bouton est branché sur GP4.

La led est branchée sur GP14.

Avec Picozero

"""
Bouton monté en Pull up : par défaut, la patte est à 1.
Si on appuie sur le bouton, la patte est à 0
"""
from picozero import LED,Button

led_rouge = LED(14)
button = Button(4)

# button.when_pressed = led_rouge.on
# button.when_released = led_rouge.off


def allumer():
    led_rouge.on()
    
def eteindre():
    led_rouge.off()

button.when_pressed = allumer
button.when_released = eteindre

Sans Picozero

"""
Bouton monté en Pull up : par défaut, la patte est à 1.
Si on appuie sur le bouton, la patte est à 0
"""
from machine import Pin

led_rouge = Pin(14,Pin.OUT)
button = Pin(4,Pin.IN,Pin.PULL_UP)

def button_callback(pin):
    if pin.value()==0:
        when_pressed()
    else :
        when_released()
        
def when_pressed():
    led_rouge.on()

def when_released():
    led_rouge.off()
    

    
button.irq(trigger = Pin.IRQ_FALLING|Pin.IRQ_RISING, handler = button_callback)