🛠 Allumer une LED via le GPIO avec libgpiod
Objetivos
Encender y hacer parpadear un LED desde un pin GPIO del Raspberry Pi Model B Rev 2 (SoC Broadcom BCM2835, conector P1 de 26 pines) utilizando libgpiod, y comprender la asociación entre el pin físico y el número GPIO.
Material
- Raspberry Pi Model B Rev 2 (512 MB) alimentado por micro-USB 5 V
- LED rojo + resistencia de 330 Ω, protoboard, cables jumper
- LED en GPIO17 (pin P1-11) a través de la resistencia hacia GND. La lógica es de 3,3 V únicamente: ningún pin tolera 5 V a la entrada, y no hay ADC en esta placa.
Código completo
# Raspbian legacy 32 bits (ère BCM2835)
sudo apt update && sudo apt install -y gpiod libgpiod2
# >
gpiodetect # doit afficher: gpiochip0 (BCM2835 GPIOs)
gpioinfo gpiochip0 | head -25
# Clignotement: ligne 17 a l'etat 1 pendant 500 ms, 10 fois de suite
sudo gpioset -c gpiochip0 --time=500ms --repeat=10 17=1
Verificación esperada
gpiodetect muestra gpiochip0. El LED parpadea diez veces aproximadamente una vez por segundo, y luego se apaga. En gpioinfo, la línea 17 pasa a modo salida durante el impulso.
Errores frecuentes
- Confundir GPIO17 (P1-11) con el pin físico 17 (3,3 V): cortocircuito o LED siempre encendido.
- Olvidar la resistencia: LED destruido o salida del SoC sobrecargada.
- Permiso denegado en /dev/gpiochip0: ejecutar con sudo o añadir el usuario al grupo gpio.
- Soldar el LED al revés: la polaridad (pata larga = ánodo) es fácil de invertir.
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