🛠 Allumer une LED via le GPIO 40 broches
Objectifs
Découvrir le connecteur GPIO 40 broches (J8) du Raspberry Pi 2 Model B et allumer une LED depuis la ligne de commande : d'abord avec l'ancienne interface sysfs, puis avec libgpiod, l'interface recommandée sur les systèmes récents. À la fin, tu sauras exporter une broche, la configurer en sortie et la commander sans écrire de programme.
Matériel
- Raspberry Pi 2 Model B sous Raspberry Pi OS 32 bits (Bullseye est le plafond pratique pour ce modèle ARMv7)
- Platine d'essai et 2 câbles jumper
- 1 LED rouge + 1 résistance 330 Ω
- Broches utilisées : GPIO17 (broche 11 du J8) et GND (broche 6)
Code complet
# Méthode 1 : sysfs (ancienne interface, dépréciée mais pédagogique)
echo 17 | sudo tee /sys/class/gpio/export
echo out | sudo tee /sys/class/gpio/gpio17/direction
echo 1 | sudo tee /sys/class/gpio/gpio17/value # LED allumée
sleep 2
echo 0 | sudo tee /sys/class/gpio/gpio17/value # LED éteinte
echo 17 | sudo tee /sys/class/gpio/unexport
# Méthode 2 : libgpiod (recommandée)
sudo apt install gpiod
sudo gpioset --time 2000 gpiochip0 17=1 # impulsion de 2 s
Vérification attendue
La LED s'allume quand la valeur vaut 1 et s'éteint à 0. Avec gpioset, l'option --time 2000 produit une impulsion de deux secondes. Le nom du contrôleur peut être gpiochip0 ou gpiochip1 selon le noyau : vérifie avec gpioinfo avant de copier les commandes.
Erreurs fréquentes
- Oublier la résistance : la LED grille ou la broche est sollicitée au-delà de sa capacité (8 mA max par broche).
- Confondre 3,3 V et 5 V : la logique GPIO est en 3,3 V, jamais 5 V.
- Permission denied sur /sys/class/gpio : utiliser sudo ou ajouter l'utilisateur au groupe gpio.
- sysfs absent ou muet : la greffe est dépréciée, passe à libgpiod.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython