AcademiaTécnico

Python + GPIO: parpadea un LED y lee un botón

Escribe tu primer programa de hardware con la librería gpiozero: salidas, entradas y eventos.

NivelTécnico
Tiempo25 min
Costo est.~$20
Pasos5

gpiozero viene instalado en Raspberry Pi OS y es la forma más amigable de controlar hardware. Los pines se numeran por su número GPIO (BCM), no por su posición física.

Video tutorial

▶ Aprendamos con Scorpion SecurityVer en YouTube ↗

Video de Aprendamos con Scorpion Security, insertado desde YouTube. Los pasos escritos abajo son nuestros y coinciden con la lista de piezas.

Pasos de la misión

  1. Crea el script

    Entra por SSH al Pi, corre nano blink.py y pega el primer ejemplo.

  2. Ejecútalo

    python3 blink.py — tu LED parpadea. Presiona Ctrl+C para detenerlo.

  3. Agrega un botón

    Conecta un botón entre GPIO27 (pin 13) y GND (pin 14). gpiozero activa la resistencia pull-up interna por ti.

  4. Usa eventos

    El segundo ejemplo enciende el LED solo mientras sostienes el botón, sin necesidad de ciclos.

  5. Experimenta

    Prueba led.blink(on_time=0.1, off_time=0.9) o usa PWMLED para variar el brillo.

Código

# blink.py
from gpiozero import LED
from time import sleep

led = LED(17)
while True:
    led.on()
    sleep(0.5)
    led.off()
    sleep(0.5)
# button.py
from gpiozero import LED, Button
from signal import pause

led = LED(17)
button = Button(27)

button.when_pressed = led.on
button.when_released = led.off
pause()

Code comments are in English, like most libraries and docs — a good habit for makers.

Preguntas

¿Numeración BCM o BOARD?

gpiozero usa BCM (números GPIO) por defecto. El pin físico 11 es GPIO17. Nuestro Mapa GPIO muestra ambos.