🛠 Allumer une LED en C avec libgpiod sur le GPIO 40 broches

Raspberry Pi 3 Model A+ (2018) — Fiche carte · debutant · Schéma : IMG-model-3a-plus-debutant-1-model3a-led-gpio.svg — Raspberry Pi 3 Model A+ et son connecteur 40 broches : GPIO17 (broche 11) vers résistance 330 Ω puis LED, cathode vers GND (broche 14)

Objectifs

Allumer une LED en C avec libgpiod sur GPIO17 du connecteur 40 broches du Raspberry Pi 3 Model A+ (SoC Broadcom BCM2837B0). Comprendre la différence entre broche physique et numéro Broadcom, et manipuler gpiochip0.

Matériel

Code complet

/* blink.c — Build: gcc blink.c -o blink -lgpiod (paquet libgpiod1-dev) */
#include <gpiod.h>
#include <stdio.h>
#include <unistd.h>

int main(void) {
    /* gpiochip0 = banque des GPIO du SoC sur le connecteur 40 broches */
    struct gpiod_chip *chip = gpiod_chip_open_by_name("gpiochip0");
    if (!chip) { perror("gpiochip0"); return 1; }

    struct gpiod_line *line = gpiod_chip_get_line(chip, 17); /* GPIO17 */
    if (gpiod_line_request_output(line, "blink", 0) < 0) { perror("request"); return 1; }

    for (int i = 0; i < 10; i++) {
        gpiod_line_set_value(line, 1);  /* LED on  */
        usleep(200000);
        gpiod_line_set_value(line, 0);  /* LED off */
        usleep(200000);
    }
    gpiod_line_release(line);
    gpiod_chip_close(chip);
    return 0;
}
sudo apt install -y libgpiod1-dev gcc
gcc blink.c -o blink -lgpiod && ./blink
# Sans compiler : sudo gpiodetect && sudo gpioset gpiochip0 17=1

Vérification attendue

gpiodetect affiche gpiochip0 ; la LED clignote 10 fois (200 ms ON / 200 ms OFF). Test rapide sans compiler : sudo gpioset gpiochip0 17=1 puis 17=0.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels