🛠 Allumer une LED via le GPIO 40 broches
Objetivos
Descubrir el conector GPIO de 40 pines (J8) del Raspberry Pi 2 Model B y encender un LED desde la línea de comandos: primero con la antigua interfaz sysfs, y luego con libgpiod, la interfaz recomendada en los sistemas recientes. Al final, sabrás exportar un pin, configurarlo como salida y controlarlo sin escribir un programa.
Material
- Raspberry Pi 2 Model B con Raspberry Pi OS de 32 bits (Bullseye es el límite práctico para este modelo ARMv7)
- Placa de pruebas y 2 cables jumper
- 1 LED rojo + 1 resistencia de 330 Ω
- Pines utilizados: GPIO17 (pin 11 del J8) y GND (pin 6)
Código completo
# Méthode 1 : sysfs (ancienne interface, dépréciée mais pédagogique)
echo 17 | sudo tee /sys/class/gpio/export
echo out | sudo tee /sys/class/gpio/gpio17/direction
echo 1 | sudo tee /sys/class/gpio/gpio17/value # LED allumée
sleep 2
echo 0 | sudo tee /sys/class/gpio/gpio17/value # LED éteinte
echo 17 | sudo tee /sys/class/gpio/unexport
# Méthode 2 : libgpiod (recommandée)
sudo apt install gpiod
sudo gpioset --time 2000 gpiochip0 17=1 # impulsion de 2 s
Verificación esperada
El LED se enciende cuando el valor es 1 y se apaga con 0. Con gpioset, la opción --time 2000 produce un pulso de dos segundos. El nombre del controlador puede ser gpiochip0 o gpiochip1 según el kernel: verifica con gpioinfo antes de copiar los comandos.
Errores frecuentes
- Olvidar la resistencia: el LED se quema o el pin se solicita más allá de su capacidad (máximo 8 mA por pin).
- Confundir 3,3 V y 5 V: la lógica GPIO es de 3,3 V, nunca de 5 V.
- Permission denied en /sys/class/gpio: usa sudo o añade el usuario al grupo gpio.
- sysfs ausente o silencioso: la interfaz está obsoleta, pasa a libgpiod.
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