🛠 Faire clignoter une LED en C avec libgpiod sur Le Potato

Cartes Libre Computer à base d'Amlogic — libre-amlogic (produit phare : Le Potato AML-S905X-CC) · debutant · Schéma : IMG-libre-amlogic-debutant-1-libre-amlogic-debutant-clignotement-led-c.svg — Le Potato AML-S905X-CC, broche 3 du connecteur 40 broches (GPIOAO_5) vers LED et résistance 330 Ω puis masse.

Objectifs

Faire clignoter une LED sur le connecteur 40 broches du Le Potato (AML-S905X-CC) en C avec libgpiod, l'interface officiellement recommandée par Libre Computer — il n'y a pas de wiringPi sur cette carte et le vendor refuse de le porter.

Matériel

Code complet

/* blink.c — gcc blink.c -o blink -lgpiod (paquet libgpiod-dev) */
#include <gpiod.h>
#include <stdio.h>
#include <unistd.h>
int main(void) {
    struct gpiod_chip *chip = gpiod_chip_open_by_number(0);
    if (!chip) { perror("gpiochip0"); return 1; }
    struct gpiod_line *line = gpiod_chip_get_line(chip, 5); /* broche 3 */
    if (!line || gpiod_line_request_output(line, "blink", 0)) {
        perror("request"); return 1;
    }
    for (int i = 0; i < 10; i++) {
        gpiod_line_set_value(line, i & 1);
        usleep(200000);
    }
    gpiod_line_release(line);
    gpiod_chip_close(chip);
    return 0;
}

Vérification attendue

./blink fait clignoter la LED 10 fois à 5 Hz. Pendant l'exécution, gpioinfo gpiochip0 montre la ligne 5 (nommée « 7J1 Header Pin3 » dans le device tree) comme demandée par le consommateur « blink ».

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels