🛠 Lire un bouton et afficher dans la console

Raspberry Pi 3 Model B (model-3b) · debutant · Schéma : IMG-model-3b-debutant-2-model3b-bouton-console.svg — bouton-poussoir entre GPIO4 (broche 7) et GND (broche 6), résistance de pull-up interne activée, sortie texte sur la console

Objectifs

Lire l'état d'un bouton-poussoir sur le GPIO du Raspberry Pi 3 Model B et afficher un message dans la console à chaque appui. Apprendre à activer la résistance de pull-up interne (le bouton est câblé vers GND, logique active au niveau bas) et à éviter le rebond mécanique par une temporisation logicielle.

Matériel

Code complet

Le bouton est câblé entre la broche physique 7 (GPIO4) et la broche physique 6 (GND). La pull-up interne maintient l'entrée à 1 au repos ; l'appui amène 0 :

#!/usr/bin/env bash
# bouton.sh — surveille GPIO4 (broche physique 7), bouton vers GND
# requis : libgpiod-utils (gpiodetect, gpioget)

echo "Surveillance GPIO4 — Ctrl-C pour quitter"

while true; do
  état=$(gpioget --numeric gpiochip0 4)
  if [ "$état" = 0 ]; then
    echo "$(date +%T) : bouton appuyé !"
    sleep 0.3   # anti-rebond logiciel
  fi
  sleep 0.05
done

Enregistrer dans bouton.sh, puis chmod +x bouton.sh et ./bouton.sh. Alternative Python : from gpiozero import Button; b = Button(4, pull_up=True) puis b.wait_for_press — gpiozero est préinstallé sur Raspberry Pi OS.

Vérification attendue

Au repos, gpioget gpiochip0 4 renvoie 1 (pull-up interne). À chaque appui maintenu sur le bouton, la console affiche une ligne horodatée « bouton appuyé ! ». Au relâchement, l'état revient à 1. Sans pull-up activée, l'entrée flotte et affiche des états aléatoires — c'est le meilleur test pour comprendre leur utilité.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels