🛠 Lire un bouton et afficher les appuis dans la console
Objetivos
Completar la primera configuración con una entrada: cablear un botón pulsador en GPIO27, activar la resistencia de pull-up interna y mostrar cada pulsación en la consola con gpiomon, sin escribir ningún código.
Material
- Raspberry Pi Model B+ con Raspberry Pi OS legacy de 32 bits, conectado por Ethernet
- 1 botón pulsador (teclas «push» de 4 patillas), cables Dupont
- Opcional: resistencia de 10 kΩ si la resistencia de pull-up interna no está disponible
Código completo
# 1) Activer le pull-up interne de GPIO27 au démarrage
# (ligne firmware récente ; sinon câbler 10 kΩ entre GPIO27 et 3,3 V)
echo "gpio=27=pup" | sudo tee -a /boot/config.txt
sudo reboot
# 2) Écouter les 5 prochains appuis : passage 1 -> 0 (bord descendant)
sudo gpiomon --num-events=5 --falling-edge gpiochip0 27
# 3) Variante « compteur » : état instantané de la broche
while true; do sudo gpioget gpiochip0 27; sleep 0.2; done
Cableado: una pata del botón en el pin 13 (GPIO27), la otra en el pin 20 (GND). Sin pulsación, la resistencia de pull-up mantiene el pin en 1; al pulsar, lo conecta a 0.
Verificación esperada
Tras reiniciar, gpioinfo gpiochip0 muestra la línea 27 con la resistencia de pull-up activa. gpiomon muestra una línea de evento por pulsación («event: edge: falling edge») y termina tras 5 pulsaciones. gpioget devuelve 1 en reposo y 0 al mantener pulsado.
Errores frecuentes
- Resistencia de pull-up olvidada: el pin «flota», gpiomon se dispara constantemente o nunca.
- Botón cableado entre GPIO y 3,3 V sin resistencia de pull-down: lógica invertida, se espera el flanco ascendente en su lugar.
- Rebotes mecánicos: varios eventos por una sola pulsación — es normal, se filtrará desde el script.
- Pin GND incorrecto: el circuito no se cierra, no se detecta ninguna pulsación.
Otros tutoriales para esta placa
- Allumer une LED depuis la GPIO 17 avec libgpiod
- Premier script Python : faire clignoter la LED
- Variation d'intensité d'une LED avec le PWM matériel (GPIO18)
- Interroger un capteur I2C (BME280) sur le bus du 40 broches
- Mettre le B+ en réseau par Ethernet et piloter en SSH
- Amorçage microSD, pannes de boot et procédure de recouvrement
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython