button_led.py

Raspberry Pi Model B (Rev 1, 2012) — Ficha de placa · Archivo : button_led.py · Lenguaje : Python · Uso : Lire un bouton poussoir et réagir par événement (callback gpiozero)

Un pulsador en GPIO27 controla un LED en GPIO17: los callbacks when_pressed/when_released de gpiozero evitan el polling. El rebote se filtra con bounce_time=0,05 s. Buen punto de partida para una interfaz local, teniendo en cuenta el conector de 26 pines.

Hardware

Una Raspberry Pi Model B revisión 1 (BCM2835, conector GPIO de 26 pines, puertos pasantes originales, sin conector P1 estándar de 40 pines). Un pulsador, un LED, una resistencia de 330 ohmios, cables dupont.

Cableado

Una pata del pulsador a GPIO27 (pin 13), la otra a GND; la resistencia de pull-up es interna (pull_up=True). LED en GPIO17.

Funcionamiento

gpiozero activa la pull-up interna; al pulsar se une el pin a GND y se dispara el callback. pause() mantiene vivo el bucle de eventos.

Ejecución

Copia el script en la placa (scp o memoria USB) y ejecútalo con python3 (o bash). Estas placas suelen correr un Raspbian antiguo: gpiozero sigue instalable con apt. Los pines GPIO siguen el conector de 26 pines del esquema oficial.

Variantes

btn.wait_for_press() para lectura bloqueante; hold_time detecta pulsaciones largas. Verifique el pin en el esquema oficial de 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()

← Volver a la ficha