🛠 GPIO en Python : LED et bouton avec gpiozero
Objetivo
Controlar los 40 pines GPIO del Zero desde Python: un LED y un botón con gpiozero. El conector del Zero es eléctricamente idéntico al del Model A+/B+/2B — lógica de 3,3 V, numeración Broadcom — pero se entrega sin soldar, así que primero necesitas un soldador.
Cableado
- Suelda un conector de 40 pines (o usa un pHAT / conector de pinza)
- LED + resistencia de 330 Ohmios: pin físico 11 (GPIO17) -> resistencia -> ánodo del LED, cátodo a GND (p. ej. pin 6)
- Botón pulsador: pin físico 13 (GPIO27) a GND, usando la resistencia de pull-up interna
- Presupuesto de corriente: 16 mA por pin, 50 mA TOTALES en todos los pines
Código
#!/usr/bin/env python3
# sudo apt install python3-gpiozero
from gpiozero import LED, Button
import signal
led = LED(17) # BCM numbering: GPIO17 = physical pin 11
btn = Button(27) # GPIO27 = physical pin 13, button wired to GND
btn.when_pressed = led.on # event-driven, no polling loop
btn.when_released = led.off
def bye(s, f):
led.off
raise SystemExit
signal.signal(signal.SIGINT, bye)
signal.pause # block forever; the Zero idles at ~0.1 A while waiting
Ejecuta con python3 bouton.py, detén con Ctrl-C.
Verificación
El LED se enciende mientras se mantiene pulsado el botón y se apaga al soltarlo; tras Ctrl-C el LED queda apagado correctamente.
Errores comunes
- El pin físico 17 es un pin de alimentación de 3,3 V, no GPIO17 — los números BCM no son números de pin.
- Alimentar salidas de sensores de 5 V al conector: la lógica es de 3,3 V y NO tolera 5 V.
- No hay ADC/DAC en esta placa: los sensores analógicos necesitan un chip externo (p. ej. MCP3008 por SPI).
- Superar los 16 mA por pin o los 50 mA totales daña el SoC — controla relés/motores mediante un transistor.
Otros tutoriales para esta placa
- Premier démarrage de la Zero avec écran (mini-HDMI)
- Installation headless : la Zero en carte réseau USB (g_ether)
- Alimentation et consommation : le point faible de la Zero
- Console série sur USB : la Zero en port série (CDC-ACM)
- Camera CSI sur Zero v1.3 : le nappe 22 broches
- Sauver une Zero qui ne boot plus : le flux legacy sans EEPROM
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash