🛠 Lire un bouton et afficher dans la console
Objetivos
Conectar un botón pulsador al Model B Rev 2, leer su estado desde Python y mostrar un mensaje en la consola cada vez que se presione, apoyándose en la resistencia de pull-up interna del BCM2835.
Material
- Raspberry Pi Model B Rev 2 con Raspbian legacy de 32 bits
- Botón pulsador, protoboard, cables jumper
- Botón entre GPIO27 (P1-13) y GND; pull-up a 3,3 V activado por software.
sudo apt install python-rpi.gpioen Raspbian legacy (paquete python2).
Código completo
#!/usr/bin/env python
# bouton.py - bouton sur GPIO27 (P1-13) vers GND, rappel interne haut
import RPi.GPIO as GPIO
import time
BTN = 27
GPIO.setmode(GPIO.BCM)
GPIO.setup(BTN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
print("Appuie sur le bouton (Ctrl-C pour quitter)")
try:
while True:
if GPIO.input(BTN) == GPIO.LOW:
print("Bouton appuye !")
time.sleep(0.3) # anti-rebond logiciel
time.sleep(0.02)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup
Verificación esperada
python bouton.py muestra un mensaje cada vez que se presiona el botón, sin necesidad de hardware externo aparte del botón. Al presionar Ctrl-C, el script finaliza correctamente y libera el pin.
Errores frecuentes
- Olvidar
pull_up_down=GPIO.PUD_UP: la entrada queda flotante y muestra pulsaciones fantasma. - Conectar el botón a 3,3 V en lugar de GND: estado invertido, la resistencia de pull interna «salta».
- En las primeras tarjetas, P1-13 llevaba el número GPIO21; verificar con
gpioinfoantes de reconectar. - Ejecutar sin permisos GPIO en una imagen reciente: usar sudo o el grupo gpio.
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