🛠 Lire un bouton poussoir avec libgpiod (pull-up interne)

Placas Libre Computer Amlogic — libre-amlogic (buque insignia: Le Potato AML-S905X-CC) · debutant · Schéma : IMG-libre-amlogic-debutant-2-libre-amlogic-debutant-bouton-libgpiod.svg — Bouton entre la broche 11 (GPIOX_3) et la masse sur Le Potato, pull-up interne activé par libgpiod.

Objetivos

Leer el estado de un botón pulsador en el Le Potato con libgpiod en C, activando la resistencia de pull-up interna (no se necesita ninguna resistencia externa) y mostrando el estado en bucle.

Material

Código completo

/* bouton.c — gcc bouton.c -o bouton -lgpiod */
#include <gpiod.h>
#include <stdio.h>
#include <unistd.h>
int main(void) {
    /* Chip/ligne à ajuster selon « lgpio info 11 » ou « gpioinfo » */
    struct gpiod_chip *chip = gpiod_chip_open_by_name("gpiochip3");
    if (!chip) { perror("gpiochip3"); return 1; }
    struct gpiod_line *line = gpiod_chip_get_line(chip, 8);
    int flags = GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_UP;
    if (!line || gpiod_line_request_input_flags(line, "bouton", flags)) {
        perror("request"); return 1;
    }
    printf("Appuyez sur le bouton (Ctrl-C pour quitter)\n");
    for (;;) {
        int etat = gpiod_line_get_value(line);
        printf("bouton %s\n", etat ? "relâché" : "APPUYÉ");
        usleep(50000);
    }
}

Verificación esperada

./bouton muestra «relajado» en reposo (el pull-up mantiene el estado alto) y «PULSADO» cuando se cierra el contacto hacia masa. gpioinfo gpiochip3 confirma el tirador pull-up en la línea solicitada.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales