🛠 Allumer une LED via le GPIO avec libgpiod
Objectifs
Découvrir le connecteur GPIO 26 broches (P1, 2×13) du Raspberry Pi Model B Rev 1 et allumer une LED en ligne de commande avec libgpiod, la méthode moderne qui remplace l'ancien wiringPi. Vous comprendrez la numérotation BCM (numéros de broche Broadcom) et la différence entre broches de données et broches d'alimentation.
Matériel
- Raspberry Pi Model B Rev 1 (BCM2835, 256 MB) avec Raspberry Pi OS legacy 32 bits (Buster)
- 1 LED rouge + résistance 330 Ω
- Breadboard et câbles Dupont femelle-mâle
- Le connecteur P1 ne délivre que du 3,3 V en logique : aucun composant 5 V sur les broches GPIO, elles ne sont pas tolérantes au 5 V.
Code complet
# 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
Vérification attendue
La LED s'allume 3 secondes puis s'éteint. gpioinfo gpiochip0 affiche la broche 17 passée de input à output. Le schéma de câblage : GPIO17 (broche 11) → résistance 330 Ω → anode de la LED → cathode → GND (broche 6).
Erreurs fréquentes
- Confondre numérotation physique et BCM : la broche physique 11 est GPIO17, pas la broche 1.
- Oublier la résistance : le LED grille sans limitation de courant.
- Inverser anode/cathode : la LED ne s'allume que dans le bon sens.
- Utiliser une broche d'alimentation (3,3 V broche 1, 5 V broche 2) comme broche de commande : elles ne sont pas pilotables.
- Sur Raspbian plus ancien que Buster,
gpiodn'existe pas : utilisez RPi.GPIO ou passez à une image legacy récente.
Autres tutoriels pour cette carte
- 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
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython