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

Cartes Libre Computer à base d'Amlogic — libre-amlogic (produit phare : 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.

Objectifs

Lire l'état d'un bouton poussoir sur le Le Potato avec libgpiod en C, en activant la résistance de pull-up interne (aucune résistance externe nécessaire) et en affichant l'état en boucle.

Matériel

Code complet

/* 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 état = gpiod_line_get_value(line);
        printf("bouton %s\n", état ? "relâché" : "APPUYÉ");
        usleep(50000);
    }
}

Vérification attendue

./bouton affiche « relâché » au repos (pull-up maintient l'état haut) et « APPUYÉ » quand on ferme le contact vers la masse. gpioinfo gpiochip3 confirme le tirage pull-up sur la ligne demandée.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels