🛠 Allumer une LED via le GPIO avec libgpiod
Objectifs
Découvrir le connecteur GPIO 40 broches du Raspberry Pi 4B (logique 3.3 V, compatible avec tous les Pi précédents) et allumer une LED avec libgpiod, l'interface caractère moderne du noyau Linux qui remplace wiringPi, déprécié. À la fin, vous saurez piloter une broche en sortie depuis un simple terminal.
Materiel
- Raspberry Pi 4B sous Raspberry Pi OS Bookworm
- LED rouge + résistance 330 ohms
- Breadboard et cables Dupont
- Le SoC BCM2711 expose jusqu'à 6 I2C, 6 UART et 6 SPI ; pas d'ADC embarqué.
Code complet
sudo apt install gpiod
sudo adduser "$USER" gpio # puis reconnexion
# GPIO18 = broche physique 12 ; 330R en série avec la LED, cathode vers GND
gpiodetect # doit afficher: gpiochip0 [brcmstb-gpio] (54 lines)
gpioinfo gpiochip0 | head -n 20
gpioset gpiochip0 18=1 # LED allumee
sleep 2
gpioset --duration=2s gpiochip0 18=0
for i in $(seq 1 10); do gpioset --duration=0.3s gpiochip0 18=1; sleep 0.3; done
Verification attendue
gpiodetect affiche gpiochip0 (le BCM2711) ; la LED s'allume pendant 2 secondes puis la boucle la fait clignoter 10 fois a environ 2 Hz. Pas de peripherique gpiochip = module gpio-mockup ou noyau incomplet.
Erreurs frequentes
- Inverser numéro physique (broche 12) et numéro BCM (GPIO18) : gpioset attend du BCM.
- Oublier la résistance : la LED grille, et par sécurité ne dépassez jamais 16 mA par broche ni 50 mA au total sur le connecteur.
- Piloter en 5 V au lieu de 3.3 V : la logique GPIO est en 3.3 V.
- Permission refusee : sortir du groupe gpio (oubli du relogin) ou passer par sudo.
- Plus tard, pour du PWM, deplacez-vous sur GPIO18 (broche 12) : c'est deja le bon ici.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython