button_led.py
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 26 broches de la carte.
Matériel requis
Une Raspberry Pi Model B révision 1 (BCM2835, connecteur GPIO 26 broches, ports traversants d'origine, pas de connecteur P1 standard 40 broches). 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 ou clé USB), puis lancez-le avec python3 (ou bash). Ces cartes tournent souvent sous une ancienne Raspbian : gpiozero reste installable par apt. Les broches GPIO suivent le connecteur 26 broches du schéma officiel.
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 P1.
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()