🛠 Faire clignoter une LED via le GPIO
Objetivos
Hacer parpadear un LED externo desde un pin GPIO del ODROID-C2 utilizando el puerto wiringPi de Hardkernel (paquete wiring-odroid), con numeración de pines físicos del conector J2 — el modo más seguro en una placa que no sea Raspberry Pi.
Material
- ODROID-C2 (Amlogic S905, 2 GB) alimentado a 5 V / 2 A (jack de 2,5x0,8 mm preferiblemente)
- Imagen Armbian, Arch Linux ARM o DietPi
- LED + resistencia de 330 ohmios, protoboard, cables jumper
- Cableado: pin físico 7 (salida GPIO) -> resistencia -> LED -> GND; lógica de 3,3 V únicamente en todo el conector J2
- Paquete wiring-odroid (confirmado en Arch Linux ARM; en las imágenes del fabricante, la biblioteca wiringPi viene preinstalada)
Código completo
/* blink.c — compiler sur la carte : gcc blink.c -lwiringPi -o blink */
#include <wiringPi.h>
#include <stdio.h>
#define LED 7 /* broche physique 7 du connecteur J2 */
int main(void) {
if (wiringPiSetupPhys == -1) { perror("wiringPiSetupPhys"); return 1; }
pinMode(LED, OUTPUT);
for (;;) {
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
}
Verificación esperada
Después de ejecutar sudo ./blink, el LED parpadea con un periodo de un segundo. El LED azul de usuario (c2:blue:alive en mainline, blue:heartbeat en las imágenes del fabricante) sigue latiendo al ritmo cardíaco: sirve como indicador de sistema independiente. > SIN VERIFICAR: la función exacta del pin J2-7 según las imágenes; verificar el mapa de pines en wiki.odroid.com antes de cualquier cableado.
Errores frecuentes
- Olvidar la resistencia: los GPIO funcionan a 3,3 V y la corriente por pin está limitada (valor del wiki no reconfirmado).
- Utilizar la numeración wiringPi por defecto (modo BCM-like Pi) en lugar de
wiringPiSetupPhys: los índices no corresponden al ODROID-C2. - Paquete wiring-odroid ausente en Armbian mainline: en este caso, controlar el LED azul mediante
/sys/class/leds/*blue*/brightness, o instalar wiring-odroid en Arch Linux ARM. - Alimentación insuficiente: una fuente de alimentación micro-USB de teléfono provoca reinicios (brown-out).
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