🛠 Faire clignoter la LED bleue via le GPIO
Objetivos
Descubrir el GPIO del ODROID-C4 bajo el kernel mainline (Armbian current o DietPi) haciendo parpadear el LED azul «status» integrado. Aprenderá a identificar los dos controladores GPIO expuestos (gpio y gpio_ao), a comprender el papel del disparador (trigger) del kernel heartbeat, y a controlar una línea con libgpiod v2 (sintaxis de Debian Bookworm).
Material
- ODROID-C4 (2 o 4 GB) con fuente de alimentación de 12 V/2 A en conector DC 5,5/2,1 mm (el puerto USB OTG no proporciona suficiente corriente)
- Tarjeta microSD con Armbian «current» (kernel 6.6 mainline)
- Pantalla HDMI o consola serie UART 115200 8N1
- Ningún componente externo: el LED status está soldado en la placa (pin GPIOAO_11, activo en estado alto)
Código completo
#!/usr/bin/env bash
# blink-status.sh - clignoter la LED bleue (chip gpio_ao, ligne 11)
# 1) Vérifier la présence des deux chips GPIO
gpiodetect
# 2) Rendre la LED à l'espace utilisateur (désactive le trigger heartbeat)
echo none > /sys/class/leds/blue:status/trigger 2>/dev/null || true
# 3) Boucle de clignotement : 250 ms ON, 250 ms OFF
while true; do
gpioset --time=250ms gpio_ao 11=1
gpioset --time=250ms gpio_ao 11=0
done
Verificación esperada
gpiodetect debe listar dos chips: gpio (bancos GPIOA/GPIOH/GPIOX/BOOT) y gpio_ao (banco always-on). Después de ejecutar el script, el LED azul parpadea aproximadamente dos veces por segundo. gpioget gpio_ao 11 devuelve 1 o 0 según el momento. Detenga con Ctrl+C: el LED permanece en su último estado.
Errores frecuentes
- El LED no obedece porque el trigger
heartbeatsigue activo: escribanoneen/sys/class/leds/blue:status/triggerantes de controlar la línea. - Intentar usar wiringPi (
gpio -g) como en Raspberry Pi: no está garantizado en Armbian mainline, prefiera libgpiod. - Confundir
gpioygpio_ao: el LED status está engpio_aolínea 11, no en el chipgpio. - Olvidar sudo: el acceso a las líneas GPIO requiere root o una pertenencia al grupo adecuada.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash