🛠 Lire un bouton et afficher l'état dans la console

ODROID-N2 / ODROID-N2+ (Hardkernel) · debutant · Schéma : IMG-odroid-n2-debutant-2-odroidn2-bouton-console.svg — Bouton poussoir entre la broche PIN_11 (GPIOX_3) et une broche GND de l'ODROID-N2, résistance de pull-up interne activée par le logiciel.

Objectifs

Lire l'état d'un bouton poussoir sur le GPIO de l'ODROID-N2 et l'afficher dans la console. On utilise la résistance de pull-up interne (bias pull-up libgpiod), donc pas de résistance externe : le bouton relie la broche à la masse quand on appuie.

Matériel

Code complet

#!/usr/bin/env bash
# bouton.sh — état du bouton sur PIN_11 en temps réel (libgpiod v2)
set -e
gpiomon --num-events=0 --falling-edge --rising-edge gpiochip0 PIN_11 &
MON=$!
trap "kill $MON" EXIT
while true; do
    état=$(gpioset --quiet --state gpiochip0 PIN_11 2>/dev/null || true)
    lu=$(gpioget gpiochip0 PIN_11)
    [ "$lu" = 0 ] && echo "BOUTON APPUYÉ" || echo "relâché"
    sleep 0.1
done

Version C (libgpiod) avec gestion d'événements : gcc bouton.c -o bouton -lgpiod, en demandant PIN_11 en entrée avec GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_UP, puis lecture à 10 Hz.

Vérification attendue

Au lancement, la console affiche « relâché » en boucle (pull-up interne maintient la ligne à 1). En maintenant le bouton enfoncé, les lignes deviennent « BOUTON APPUYÉ ». Avec gpiomon gpiochip0 PIN_11, chaque appui/relâchement produit un événement horodaté.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels