🛠 Bouton poussoir et messages dans la console
Objetivos
Cablear un botón pulsador, comprender la resistencia de pull-up interna y mostrar un mensaje en la consola en cada pulsación. Escribirás dos versiones: sondeo (polling) y por eventos, este último es el método recomendado por la documentación oficial con gpiozero.
Material
- Raspberry Pi 4B, protoboard, cables Dupont
- 1 botón pulsador, 1 LED, 2 resistencias de 330 ohmios
- python3-gpiozero (preinstalado en el escritorio, si no, sudo apt install python3-gpiozero)
Código completo
#!/usr/bin/env python3
# bouton.py - GPIO17 (broche 11) -> 330R -> LED -> GND ; GPIO27 (broche 13) <- bouton <- GND
from gpiozero import LED, Button
from signal import pause
led = LED(17) # sortie active a l'etat haut
btn = Button(27, pull_up=True) # pull-up interne, appui actif a l'etat bas
while True:
if btn.is_pressed:
print("Bouton appuye !")
led.on
else:
led.off
# Version evenementielle recommandee :
# btn.when_pressed = led.on
# btn.when_released = led.off
# pause
Verificación esperada
Ejecuta python3 bouton.py y luego pulsa el botón: se muestra el mensaje ¡Botón pulsado! y el LED se enciende; se apaga al soltar. Ctrl+C termina el script correctamente.
Errores frecuentes
- Olvidar la resistencia de pull-up (interna o de 10 kOhmios externa): la entrada queda flotante y muestra pulsaciones fantasma.
- Conectar el botón a 3.3 V en lugar de GND: con la resistencia de pull-up activa, la pulsación debe conectar a GND.
- No incluir pull_up=True en el código cuando el cableado asume una resistencia de pull-up externa.
- Realizar un sondeo en un bucle cerrado que consume un núcleo completo: prefiere usar when_pressed y pause.
- Confusión entre numeración física/BCM: pin 13 = GPIO27, pin 11 = GPIO17.
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