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

Raspberry Pi 3 Model A+ (2018) — Ficha de placa · 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)

Objetivos

Encender un LED en C con libgpiod en el GPIO17 del conector de 40 pines del Raspberry Pi 3 Model A+ (SoC Broadcom BCM2837B0). Comprender la diferencia entre el pin físico y el número Broadcom, y manipular gpiochip0.

Material

Código completo

/* 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

Verificación esperada

gpiodetect muestra gpiochip0; el LED parpadea 10 veces (200 ms ON / 200 ms OFF). Prueba rápida sin compilar: sudo gpioset gpiochip0 17=1 y luego 17=0.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales