bouton-gpio.py

Raspberry Pi Compute Module 1 (CM1) · Archivo : bouton-gpio.py · Lenguaje : Python · Uso : Réagir à l'appui sur un bouton poussoir

Un botón en el conector GPIO dispara una acción al pulsar y al soltar. gpiozero ofrece los callbacks when_pressed/when_released con antirrebote integrado y pause() orientado a eventos.

Hardware necesario

Un Compute Module 1 (BCM2835) en una Compute Module IO Board v1/v3, alimentada a 5 V por micro-USB, con tarjeta SD con Raspberry Pi OS legacy (Buster). 1 botón pulsador (una pata al pin GPIO, la otra a GND).

Cableado

Botón entre el pin físico 7 (GPIO4) y GND; la resistencia de tirada es interna (pull_up=True).

Funcionamiento

Se vigila el nivel del pin; un flanco válido (estable 30 ms) ejecuta la acción. gpiozero delega todo en callbacks asíncronos. El CM1 es un Raspberry Pi 1 (ARMv6): use Raspberry Pi OS legacy de 32 bits y RPi.GPIO (sudo apt install python3-rpi.gpio). Los números GPIO siguen la numeración BCM clásica.

Para ir más lejos

Contador de pulsaciones, doble clic (medida de intervalo) o lanzamiento de un script shell vía subprocess.

bouton-gpio.py

#!/usr/bin/env python3
# Bouton poussoir avec gpiozero : reaction sur appui et relachement.
from gpiozero import Button, LED
from signal import pause

bouton = Button(4, pull_up=True, bounce_time=0.05)  # GPIO4, broche 7
led = LED(17)

def sur_appui():
    print("Appui !")
    led.on()

def sur_relachement():
    print("Relache.")
    led.off()

bouton.when_pressed = sur_appui
bouton.when_released = sur_relachement

print("Pret : Ctrl-C pour quitter")
pause()   # laisse tourner les callbacks en tache de fond

← Volver a la ficha