button_led.py

Raspberry Pi 3 Model B+ (2018) — 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 3 Model B+ (BCM2837B0 quad-core 1,4 GHz, Wi-Fi 5 GHz, Bluetooth 4.2, boîtier métallique blindé, GPIO 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), 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