🛠 Faire clignoter une LED via le GPIO avec libgpiod
Objetivos
Descubrir el conector de 40 pines de la Orange Pi 3B (Rockchip RK3566) y hacer parpadear un LED con libgpiod, la API moderna de Linux basada en dispositivos de carácter — sin pasar por el antiguo mecanismo sysfs gpio export.
Material
- Orange Pi 3B con Armbian (Debian/Ubuntu), alimentada a 5 V / 3 A mediante USB-C
- 1 LED + resistencia de 330 Ω, cables Dupont hembra-macho
- Pantalla o sesión SSH
Código completo
sudo apt install gpiod
gpiodetect # gpiochip0 = gpio0 ... gpiochip4 = gpio4 (RK3566)
gpioinfo gpiochip1
# Banques Rockchip exposées par libgpiod : PA=0-31, PB=32-63, PC=64-95, PD=96-127
# Exemple : gpio1_b3 = 32+3 = 35 sur gpiochip1 (vérifier une broche libre sur le plan officiel 40 broches)
sudo gpioset -c gpio1 --time=1 35=1 # niveau haut pendant 1 s
# Clignotage 10 fois
for i in $(seq 1 10); do sudo gpioset -c gpio1 --time=0.2 35=1; sleep 0.3; done
# Récupérer la LED heartbeat système (gpio0_C0 = ligne 64) si elle gêne :
echo none | sudo tee /sys/class/leds/green\:heartbeat/trigger
Verificación esperada
gpiodetect muestra gpiochip0 a gpiochip4. El LED se enciende durante aproximadamente 1 segundo con gpioset --time=1, y luego parpadea 10 veces en el bucle. El LED heartbeat verde de la placa (gpio0_C0, definido en el device tree mainline) parpadea bajo Linux; esto es normal.
Errores frecuentes
- Utilizar antiguos números GPIO sysfs heredados de tutoriales de Raspberry Pi: bajo Armbian/Rockchip, los pines son los bancos gpio0…gpio4 expuestos por libgpiod, no los números BCM.
- Equivocarse de gpiochip: gpio1_b3 es la línea 35 de gpiochip1, no de gpiochip0.
- Invertir el LED (ánodo/cátodo) u olvidar la resistencia de 330 Ω.
- Alimentar la placa con una potencia insuficiente: >
Otros tutoriales para esta placa
- Lire un bouton poussoir et afficher l'état dans la console
- Premier script Python : bouton + LED avec python3-libgpiod
- Variation d'intensité d'une LED avec un signal PWM
- Interroger un capteur I2C sur les broches 3/5 du connecteur
- Configurer Ethernet gigabit et Wi-Fi puis se connecter en SSH
- Booter sur un SSD NVMe et récupérer une carte bloquée (MaskROM)
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash