Domina los GPIO de Raspberry Pi con Python: Tutorial Paso a Paso
Los pines GPIO (General Purpose Input/Output) son la interfaz física que permite a la Raspberry Pi interactuar con el mundo real. Su correcta configuración y programación en Python amplía enormemente las capacidades de este SBC (Single Board Computer). En esta guía completa exploramos el pinout, la librería gpiozero y ejemplos prácticos.
¿Qué es GPIO y Cómo Funciona?
GPIO = Entrada/Salida de Propósito General. Son terminales configurables por software como entradas (leer sensores, botones) o salidas (controlar LEDs, relés, motores).
- Entrada: Reciben señales de interruptores, sensores (temperatura, movimiento, luz), etc.
- Salida: Actúan sobre actuadores: LEDs, zumbadores, relés, drivers de motor, etc.
Para que funcionen, se requiere: 1) Montaje hardware correcto (niveles lógicos 3,3 V, resistencias pull-up/down) y 2) Configuración software (librerías, permisos, numeración de pines).
Pinout Detallado (Modelos 40 pines: Pi 3/4/Zero W, etc.)
Clasificación clave:
- Alimentación: 3,3 V (pines 1, 17), 5 V (pines 2, 4), GND (pines 6, 9, 14, 20, 25, 30, 34, 39).
- GPIO programables: 26 pines (GPIO0–GPIO27, excepto los de alimentación).
- Funciones alternativas: I²C (GPIO2/3), SPI (GPIO7–11), UART (GPIO14/15), PWM (GPIO12/13/18/19), etc.
Nota: Los modelos antiguos (Pi 1 Model B) tenían 26 pines. Verifica siempre tu modelo antes de cablear.
Programación en Python: Librería gpiozero
gpiozero es la librería oficial recomendada: abstrae el hardware, ofrece clases para componentes comunes (LED, Button, MotionSensor, Motor, etc.) y maneja automáticamente la numeración BCM.
1. Montaje Hardware Básico
Componentes recomendados:
- Protoboard y cables jumper macho-hembra
- Resistencias: 330 Ω (para LED), 10 kΩ (pull-up/down)
- LED, pulsador, sensor PIR (movimiento)
- Opcional: Pi Wedge o adaptador GPIO a protoboard
2. Instalación de gpiozero
# En Raspberry Pi OS (antes Raspbian) ya viene preinstalada.
# Si no: sudo apt update && sudo apt install python3-gpiozero
3. Primer Script: Parpadeo de LED (Blink)
from gpiozero import LED
from time import sleep
led = LED(17) # GPIO17 (pin 11) - numeración BCM
while True:
led.on()
sleep(1)
led.off()
sleep(1)
4. Lectura de Botón con Pull-up Interno
from gpiozero import Button
from signal import pause
btn = Button(2, pull_up=True) # GPIO2 (pin 3), pull-up interno activado
btn.when_pressed = lambda: print("¡Botón pulsado!")
pause() # mantiene el script vivo
5. Sensor de Movimiento PIR
from gpiozero import MotionSensor
pir = MotionSensor(4) # GPIO4 (pin 7)
pir.when_motion = lambda: print("¡Movimiento detectado!")
pir.when_no_motion = lambda: print("Sin movimiento")
pause()
Proyectos Prácticos con GPIO
- Detector de movimiento con alarma: PIR + buzzer + notificación por email/Telegram.
- Control de iluminación inteligente: Relé + sensor de luz + programación horaria.
- Estación meteorológica: Sensores I²C (BME280, BMP280) + registro en base de datos / dashboard web.
- Robot móvil: Driver de motor (L298N, TB6612) + control PWM de velocidad + sensor ultrasónico HC-SR04.
- Cámara de vigilancia: Módulo cámara Pi + MotionEyeOS o script Python + OpenCV.
Buenas Prácticas y Consejos
- Usa siempre numeración BCM (GPIOx) en el código; es la estándar en
gpiozeroyRPi.GPIO. - Protege la Pi: nunca apliques >3,3 V a un GPIO. Usa divisores de tensión o level-shifters para señales de 5 V.
- Limita corriente de salida: máx. 16 mA por pin, 50 mA total. Usa transistores/MOSFETs/relés para cargas mayores.
- Emplea
try/finallyowithpara liberar pines al salir del script. - Para proyectos críticos, considera
RPi.GPIOopigpio(control DMA, PWM hardware, callbacks rápidos).
Conclusión
Los pines GPIO convierten a la Raspberry Pi en una plataforma versátil de computación física. Con Python y gpiozero, el desarrollo es rápido, legible y accesible para makers, educadores e ingenieros. Domina el pinout, respeta los límites eléctricos y explora la inmensa ecosfera de sensores y actuadores compatibles.
¿Dudas sobre tu proyecto GPIO? Escríbenos y te ayudamos a dar el siguiente paso.
Tecnología Industrial
- Monitorización profesional de temperatura con Raspberry Pi y DS18B20
- Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
- Mida Sensores Analógicos en Raspberry Pi sin ADC Nativo
- Dominio del abastecimiento estratégico: 5 pasos probados para asegurar proveedores de máxima calidad
- Crisis mundial del agua: La escasez crítica que amenaza a la humanidad
- Dominar el Mecanizado: Pasos Clave para Piezas Consistentes y de Alta Calidad
- El Escenario Global de Producción: Cómo la Manufactura Impulsa Nuestra Economía
- Mecanizado CNC de Precisión: Guía Profesional de Pasos de Producción
- Pigmentos ftalocianina: Aplicaciones, industrias y por qué importa la calidad
- Aplicaciones de los tintes básicos en diversas industrias
- Pigmento Azul: Aplicaciones clave, beneficios y por qué los líderes de la industria confían en fabricantes de confianza