🛠 Faire clignoter une LED via le GPIO
Objectifs
Faire clignoter une LED externe depuis une broche GPIO de l'ODROID-C2 en utilisant le port wiringPi de Hardkernel (paquet wiring-odroid), en numérotation des broches physiques du connecteur J2 — le mode le plus sûr sur une carte non-Raspberry Pi.
Matériel
- ODROID-C2 (Amlogic S905, 2 Go) alimenté en 5 V / 2 A (jack 2,5x0,8 mm de préférence)
- Image Armbian, Arch Linux ARM ou DietPi
- LED + résistance 330 ohms, breadboard, fils jumper
- Câblage : broche physique 7 (sortie GPIO) -> résistance -> LED -> GND ; logique 3,3 V uniquement sur tout le connecteur J2
- Paquet wiring-odroid (confirmé sur Arch Linux ARM ; sur les images vendor, la bibliothèque wiringPi est préinstallée)
Code complet
/* 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);
}
}
Vérification attendue
Après sudo ./blink, la LED clignote avec une période d'une seconde. La LED bleue utilisateur (c2:blue:alive en mainline, blue:heartbeat sur les images vendor) continue de battre en rythme cardiaque : elle sert de témoin système indépendant. >
Erreurs fréquentes
- Oublier la résistance : les GPIO sont en 3,3 V et le courant par broche est limité (valeur du wiki non reconfirmée).
- Utiliser la numérotation wiringPi par défaut (mode BCM-like Pi) au lieu de wiringPiSetupPhys : les index ne correspondent pas à l'ODROID-C2.
- Paquet wiring-odroid absent sur Armbian mainline : dans ce cas piloter la LED bleue via /sys/class/leds/*blue*/brightness, ou installer wiring-odroid sur Arch Linux ARM.
- Alimentation sous-dimensionnée : une alimentation micro-USB de téléphone provoque des reboots (brown-out).
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash