🛠 Allumer une LED depuis la GPIO 17 avec libgpiod
Objectifs
Découvrir l'en-tête 40 broches (J8) du Raspberry Pi Model B+ — la nappe qui a défini le format de tous les « Model B » suivants — et allumer une LED sans écrire de programme, grâce aux outils libgpiod (gpiodetect, gpioinfo, gpioset) disponibles sur les images legacy 32 bits.
Matériel
- Raspberry Pi Model B+ (BCM2835, 512 MB) sous Raspberry Pi OS legacy 32 bits (Buster ou antérieur)
- 1 LED rouge, 1 résistance 330 Ω, fils Dupont femelle-mâle
- Alimentation micro-USB 5 V fiable (les coupures par sous-tension faussent tout)
Code complet
# Installation des outils libgpiod
sudo apt update && sudo apt install -y gpiod
# Inventaire des puces GPIO puis état des lignes
gpiodetect
gpioinfo gpiochip0
# Broche physique 11 = GPIO17 (BCM) : mise à 1, la LED s'allume
sudo gpioset gpiochip0 17=1
sleep 5
# Extinction
sudo gpioset gpiochip0 17=0
Câblage : broche 11 (GPIO17) → résistance 330 Ω → anode de la LED ; cathode → broche 14 (GND). La logique du B+ est en 3,3 V : ne jamais alimenter une broche GPIO en 5 V.
Vérification attendue
gpiodetect affiche « gpiochip0 [bcm2835-gpio] (54 lines) ». Après gpioset gpiochip0 17=1, la LED reste allumée et gpioinfo montre la ligne 17 en « output active » ; avec 17=0 elle s'éteint.
Erreurs fréquentes
- Oubli de sudo : « permission denied » sur /dev/gpiochip0 (ou ajouter l'utilisateur au groupe gpio).
- Confusion entre numéro BCM (17) et numéro de broche physique (11) : vérifier avec gpioinfo ou un schéma pinout.
- LED branchée sans résistance, ou broche reliée au 5 V : LED détruite ou broche hors spécification (3,3 V max).
- Très vieille image : les outils peuvent s'appeler libgpiod-utils au lieu de gpiod.
Autres tutoriels pour cette carte
- Lire un bouton et afficher les appuis dans la console
- Premier script Python : faire clignoter la LED
- Variation d'intensité d'une LED avec le PWM matériel (GPIO18)
- Interroger un capteur I2C (BME280) sur le bus du 40 broches
- Mettre le B+ en réseau par Ethernet et piloter en SSH
- Amorçage microSD, pannes de boot et procédure de recouvrement
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython