🛠 Allumer une LED via le GPIO avec libgpiod
Objetivos
Descubrir el conector GPIO de 40 pines del Raspberry Pi 5 y encender un LED desde la línea de comandos con libgpiod, la API GPIO moderna del kernel de Linux. En el Pi 5, los pines de 3,3 V son controlados por el chip RP1 y la lógica es exclusivamente de 3,3 V.
Material
- Raspberry Pi 5 con Raspberry Pi OS de 64 bits (Bookworm o posterior)
- 1 LED rojo + 1 resistencia de 470 Ω
- Cables Dupont hembra-macho
- Pines: pin físico 11 = GPIO17 (salida), pin físico 6 = GND
Código completo
# Installer les outils libgpiod
sudo apt update && sudo apt install -y gpiod
# Vérifier la puce GPIO (gpiochip0 sur Pi 5)
gpiodetect
gpioinfo gpiochip0 | grep -A1 line\ 17
# Mettre GPIO17 en sortie et l'allumer (broche physique 11)
gpioset gpiochip0 17=1
sleep 2
gpioset gpiochip0 17=0
# Clignoter 5 fois
for i in 1 2 3 4 5; do gpioset --hold-period 1s gpiochip0 17=1; done
Verificación esperada
gpiodetect muestra gpiochip0 [pinctrl-rp1]. El LED se enciende durante gpioset con 17=1 y luego se apaga. Con --hold-period 1s, parpadea un segundo por ciclo.
Errores frecuentes
- Olvidar la resistencia: el LED se quema o consume demasiada corriente (límite recomendado 16 mA por pin, 50 mA en total en el GPIO).
- Confundir el número GPIO con el número de pin físico: GPIO17 = pin 11, no pin 17.
- Usar tutoriales antiguos de RPi.GPIO con escritura directa BCM2835: en el Pi 5, el GPIO pasa por RP1, utilice libgpiod, lgpio o gpiozero.
gpiodetectvacío: verifique que el kernel esté actualizado (uname -r) y reinicie.- Alimentar un circuito con 5 V desde un pin GPIO: los pines de datos son de 3,3 V.
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