🛠 Allumer une LED via le GPIO avec libgpiod
Objetivos
Descubrir el conector GPIO de 26 pines (P1, 2×13) del Raspberry Pi Model B Rev 1 y encender un LED desde la línea de comandos con libgpiod, el método moderno que reemplaza al antiguo wiringPi. Comprenderá la numeración BCM (números de pin Broadcom) y la diferencia entre pines de datos y pines de alimentación.
Material
- Raspberry Pi Model B Rev 1 (BCM2835, 256 MB) con Raspberry Pi OS legacy de 32 bits (Buster)
- 1 LED rojo + resistencia de 330 Ω
- Placa de pruebas (breadboard) y cables Dupont hembra-macho
- El conector P1 solo entrega 3,3 V en lógica: no coloque componentes de 5 V en los pines GPIO, ya que no son tolerantes a 5 V.
Código completo
# Installation de libgpiod (Buster)
sudo apt update && sudo apt install -y gpiod
# Lister les broches du contrôleur BCM2835
gpioinfo gpiochip0
# Configurer GPIO17 en sortie puis l'allumer (GPIO17 = broche physique 11)
gpioset gpiochip0 17=1
sleep 3
gpioset gpiochip0 17=0
Verificación esperada
El LED se enciende durante 3 segundos y luego se apaga. gpioinfo gpiochip0 muestra que el pin 17 ha pasado de input a output. El esquema de cableado es: GPIO17 (pin 11) → resistencia de 330 Ω → ánodo del LED → cátodo → GND (pin 6).
Errores frecuentes
- Confundir la numeración física con la BCM: el pin físico 11 es GPIO17, no el pin 1.
- Olvidar la resistencia: el LED se quema si no se limita la corriente.
- Invertir ánodo/cátodo: el LED solo se enciende en el sentido correcto.
- Usar un pin de alimentación (3,3 V en el pin 1, 5 V en el pin 2) como pin de control: no son controlables.
- En versiones de Raspbian anteriores a Buster,
gpiodno existe: utilice RPi.GPIO o actualice a una imagen legacy reciente.
Otros tutoriales para esta placa
- Lire un bouton poussoir et afficher l'état dans la console
- Premier script Python : faire clignoter la LED
- Variation d'intensité LED avec le PWM matériel (et son piège)
- Lire un capteur I2C (température/humidité) sur le bus 1
- Configurer l'Ethernet 10/100 et piloter le Pi en SSH
- Boot sur SD, partitions et procédure de recouvrement
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython