🛠 Bouton poussoir et messages dans la console
Objetivos
Leer un estado lógico en una entrada GPIO y reaccionar en la consola. Vas a cablear un botón pulsador, activar la resistencia de pull-up interna para evitar el componente externo, y luego vigilar el pin en bucle para mostrar un mensaje en cada pulsación.
Material
- Raspberry Pi 2 Model B con Raspberry Pi OS de 32 bits
- 1 botón pulsador
- Placa de pruebas, 2 cables jumper
- Pines: GPIO4 (pin 7 del J8) y GND (pin 9)
- Paquete gpiod instalado (sudo apt install gpiod)
Código completo
#!/bin/bash
# bouton.sh — surveille GPIO4 (actif au niveau bas, pull-up interne)
CHIP=gpiochip0
while true; do
etat=$(sudo gpioget --pull-up $CHIP 4)
if [ "$etat" = "0" ]; then
echo "$(date +%T) : bouton appuye !"
while [ "$(sudo gpioget --pull-up $CHIP 4)" = "0" ]; do sleep 0.05; done
echo "$(date +%T) : bouton relache"
fi
sleep 0.05
done
Guárdalo como botón.sh, luego: chmod +x botón.sh && ./botón.sh
Verificación esperada
Cada pulsación muestra una línea con marca de tiempo « ¡botón pulsado! » seguida de « botón soltado » al soltarlo. Sin pulsación, el bucle permanece silencioso. Detén con Ctrl+C.
Errores frecuentes
- Olvidar el pull-up: sin él, el pin queda flotante y muestra estados aleatorios; la opción --pull-up (o una resistencia hacia 3,3 V) es indispensable.
- Cablear GPIO4 hacia 3,3 V en lugar de GND: en ese caso hay que invertir la lógica (activo en nivel alto).
- Confundir el número de pin físico (7) con el número GPIO (4): siempre se programa con el número GPIO.
- Mensajes repetidos: el rebote mecánico del botón provoca duplicados; la temporización de 50 ms tras la detección los filtra.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython