button_led.py

Raspberry Pi Model B+ (2014) — Fiche de carte · Fichier : button_led.py · Langage : Python · Usage : Lire un bouton poussoir et réagir par événement (callback gpiozero)

Un bouton entre GPIO27 et la masse pilote une LED sur GPIO17 : les callbacks when_pressed/when_released de gpiozero évitent le polling. Le rebond est filtré avec bounce_time=0,05 s. Bon point de départ pour une interface locale, en tenant compte du brochage 40 broches de la carte.

Matériel requis

Une Raspberry Pi Model B+ (BCM2835, connecteur GPIO 40 broches, alimentation micro-USB, audio 3,5 mm 4 pôles). Un bouton poussoir, une LED, une résistance 330 ohms, des fils dupont.

Câblage

Une patte du bouton sur GPIO27 (broche 13), l'autre sur GND ; la résistance de pull-up est interne (pull_up=True). LED côté GPIO17.

Fonctionnement

gpiozero active le pull-up interne ; l'appui relie la broche à GND et déclenche le callback. pause() laisse tourner la boucle d'événements.

Exécution

Copiez le script sur la carte (scp), puis lancez-le avec python3 (ou bash). Installez gpiozero avec sudo apt install python3-gpiozero si absent. Le brochage du connecteur 40 broches figure sur le schéma officiel et dans le site Raspberry Pi.

Variantes

btn.wait_for_press() pour du bloquant ; hold_time pour détecter un appui long. Vérifiez la broche sur le schéma officiel J8.

button_led.py

# button_led.py — allume une LED quand on appuie sur un bouton.
# Deps: sudo apt install python3-gpiozero
# Cablage : bouton entre GPIO27 et GND, pas de resistance externe (pull-up interne).
from gpiozero import LED, Button
from signal import pause

led = LED(17)      # GPIO17, broche 11
btn = Button(27, pull_up=True, bounce_time=0.05)  # GPIO27, broche 13

def on_press():
    print("Bouton presse")
    led.on()

def on_release():
    led.off()

btn.when_pressed = on_press
btn.when_released = on_release
print("Appuyez sur le bouton, Ctrl+C pour sortir")
pause()

← Retour à la fiche