🛠 Faire clignoter une LED via le GPIO
Objectifs
Découvrir le connecteur GPIO 40 broches de l'ODROID-N2 (Amlogic S922X) en faisant clignoter une LED. Sous image mainline (Armbian), le device-tree BayLibre attribue des noms lisibles PIN_xx aux lignes GPIO, ce qui évite tout calcul de numéro de broche : on pilote directement PIN_23 (GPIOX_11) avec libgpiod v2.
Matériel
- ODROID-N2 ou N2+ sous Armbian (kernel mainline, famille meson-g12b)
- 1 LED rouge + 1 résistance 330 Ω
- Câbles Dupont femelle-mâle
- Attention : niveau logique GPIO non confirmé (3,3 V généralement admis) >
Code complet
#!/usr/bin/env bash
# clignotant.sh — LED sur PIN_23 (GPIOX_11), GND sur PIN_25 — libgpiod v2
set -e
# 1. Vérifier que le chip expose bien les noms lisibles du device-tree
gpioinfo gpiochip0 | grep -E 'PIN_(23|25)'
# 2. Clignoter : cycle 0,5 s
while true; do
gpioset --quiet gpiochip0 PIN_23=1; sleep 0.5
gpioset --quiet gpiochip0 PIN_23=0; sleep 0.5
done
Vérification attendue
gpioinfo gpiochip0 | grep PIN_23 affiche la ligne nommée PIN_23 (GPIOX_11). Après sudo ./clignotant.sh, la LED clignote à 1 Hz ; Ctrl-C l'arrête. gpioset --quiet gpiochip0 PIN_23=0 doit éteindre la LED.
Erreurs fréquentes
- Mauvaise broche : le connecteur fait 40 broches, compter depuis le coin marqué 1 (près du port Ethernet).
- Oubli de la résistance : la LED grille ou tire trop de courant.
- Inversion LED : la patte longue (anode) va vers PIN_23, la courte vers GND (PIN_25).
gpiochip0introuvable : sur certaines images le chip s'appelle autrement, lister avecgpioinfoouls /dev/gpiochip*.- Image vendor (kernel 4.9 Hardkernel) : les noms
PIN_xxn'existent pas, utiliser l'outillage Hardkernel ou passer à Armbian. - Permissions : ajouter l'utilisateur au groupe
gpioou lancer en sudo.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash