🛠 Faire clignoter une LED via le GPIO
Objetivos
Descubrir el conector GPIO de 40 pines del ODROID-N2 (Amlogic S922X) haciendo parpadear un LED. Bajo una imagen mainline (Armbian), el device-tree de BayLibre asigna nombres legibles PIN_xx a las líneas GPIO, lo que evita cualquier cálculo del número de pin: se controla directamente PIN_23 (GPIOX_11) con libgpiod v2.
Material
- ODROID-N2 o N2+ con Armbian (kernel mainline, familia meson-g12b)
- 1 LED rojo + 1 resistencia de 330 Ω
- Cables Dupont hembra-macho
- Atención: nivel lógico GPIO no confirmado (generalmente se admite 3,3 V) >
Código completo
#!/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
Verificación esperada
gpioinfo gpiochip0 | grep PIN_23 muestra la línea nombrada PIN_23 (GPIOX_11). Después de sudo ./clignotant.sh, el LED parpadea a 1 Hz; Ctrl-C lo detiene. gpioset --quiet gpiochip0 PIN_23=0 debe apagar el LED.
Errores frecuentes
- Pin incorrecto: el conector tiene 40 pines, contar desde la esquina marcada con 1 (cerca del puerto Ethernet).
- Olvido de la resistencia: el LED se quema o consume demasiada corriente.
- Inversión del LED: la pata larga (ánodo) va hacia PIN_23, la corta hacia GND (PIN_25).
gpiochip0no encontrado: en algunas imágenes el chip tiene otro nombre, listar congpioinfools /dev/gpiochip*.- Imagen del fabricante (kernel 4.9 Hardkernel): los nombres
PIN_xxno existen, usar las herramientas de Hardkernel o cambiar a Armbian. - Permisos: añadir el usuario al grupo
gpioo ejecutar con sudo.
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