🛠 Premier script Python : LED + bouton réunis
Objetivos
Escribir, hacer ejecutable y lanzar un primer script Python 3 que combine los dos tutoriales anteriores: el botón enciende el LED. Descubrirás gpiozero (preinstalado en Raspberry Pi OS), la numeración BCM, la gestión correcta de Ctrl-C y el papel del shebang.
Material
- Tarjeta tipo Raspberry Pi 3 Model B+ con Raspberry Pi OS (gpiozero preinstalado)
- LED + resistencia de 330 Ω en GPIO17 (pin 11), botón en GPIO27 (pin 13) hacia GND
- Un editor de texto (nano) por SSH o localmente
Código completo
#!/usr/bin/env python3
"""Bouton -> LED sur carte 40 broches (logique 3,3 V, pin <= 16 mA).
LED anode -> 330 ohm -> GPIO17 ; bouton -> GPIO27 -> GND."""
from gpiozero import LED, Button
from signal import signal, SIGINT, default_int_handler
led = LED(17) # numérotation BCM, comme pinout.xyz
button = Button(27, pull_up=True) # pull-up interne, appui vers GND
button.when_pressed = led.on # piloté par événement, pas de boucle active
button.when_released = led.off
signal(SIGINT, default_int_handler) # Ctrl-C nettoie l'état des broches
while True: # gpiozero fait tourner ses threads
pass
chmod +x bouton_led.py
./bouton_led.py # Ctrl-C pour quitter
Verificación esperada
Mientras el script se ejecuta, pulsar el botón enciende el LED y soltarlo lo apaga — casi instantáneamente (callback por eventos). Después de Ctrl-C, el LED se apaga correctamente porque gpiozero libera los pines. python3 -c "import gpiozero; print(gpiozero.__version__)" confirma la presencia de la biblioteca.
Errores frecuentes
ModuleNotFoundError: gpiozero: imagen mínima sin paquetes recomendados —sudo apt install python3-gpiozero.- Olvidar
chmod +xo el shebang:./bouton_led.pyse niega a ejecutarse; lanzar conpython3 bouton_led.py. - El LED permanece encendido después de Ctrl-C: el script fue terminado abruptamente (SIGKILL); relanzar correctamente o apagar mediante un nuevo script.
- Pin incorrecto: gpiozero espera el número BCM (17, 27), no el número de pin físico (11, 13).
- Cables mal insertados en el conector de 40 pines: el caso clásico de «no funciona» — probar el LED y el botón por separado primero.
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