button_led.py

Raspberry Pi 2 Model B (2015) — Fiche 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 2 Model B (SoC BCM2836/2837 quad-core, connecteur GPIO 40 broches, Ethernet 100 Mbit/s, alimentation micro-USB). 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). Raspberry Pi OS inclut gpiozero ; sinon sudo apt install python3-gpiozero. Le brochage 40 broches est documenté sur le site officiel 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