🛠 Allumer une LED via le GPIO avec libgpiod
Objectifs
Allumer et faire clignoter une LED depuis une broche GPIO du Raspberry Pi Model B Rev 2 (SoC Broadcom BCM2835, connecteur P1 à 26 broches) en utilisant libgpiod, et comprendre l'association broche physique / numéro GPIO.
Matériel
- Raspberry Pi Model B Rev 2 (512 MB) alimenté en micro-USB 5 V
- LED rouge + résistance 330 Ω, breadboard, câbles jumper
- LED sur GPIO17 (broche P1-11) via la résistance vers GND. La logique est en 3,3 V uniquement : aucune broche ne tolère 5 V en entrée, et il n'y a pas d'ADC sur cette carte.
Code complet
# 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'état 1 pendant 500 ms, 10 fois de suite
sudo gpioset -c gpiochip0 --time=500ms --repeat=10 17=1
Vérification attendue
gpiodetect affiche gpiochip0. La LED clignote dix fois environ une fois par seconde, puis s'éteint. Dans gpioinfo, la ligne 17 passe en sortie pendant l'impulsion.
Erreurs fréquentes
- Confondre GPIO17 (P1-11) et la broche physique 17 (3,3 V) : court-circuit ou LED toujours allumée.
- Oublier la résistance : LED détruite ou sortie du SoC trop sollicitée.
- Permission refusée sur /dev/gpiochip0 : lancer avec sudo ou ajouter l'utilisateur au groupe gpio.
- Souder la LED à l'envers : la polarité (patte longue = anode) est facile à inverser.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython