🛠 Lire un bouton et afficher dans la console
Objectifs
Câbler un bouton poussoir sur le Model B Rev 2, lire son état depuis Python et afficher un message dans la console à chaque appui, en s'appuyant sur la résistance de rappel interne du BCM2835.
Matériel
- Raspberry Pi Model B Rev 2 avec Raspbian legacy 32 bits
- Bouton poussoir, breadboard, câbles jumper
- Bouton entre GPIO27 (P1-13) et GND ; rappel au 3,3 V activé en logiciel.
sudo apt install python-rpi.gpiosur Raspbian legacy (paquet python2).
Code complet
#!/usr/bin/env python
# bouton.py - bouton sur GPIO27 (P1-13) vers GND, rappel interne haut
import RPi.GPIO as GPIO
import time
BTN = 27
GPIO.setmode(GPIO.BCM)
GPIO.setup(BTN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
print("Appuie sur le bouton (Ctrl-C pour quitter)")
try:
while True:
if GPIO.input(BTN) == GPIO.LOW:
print("Bouton appuye !")
time.sleep(0.3) # anti-rebond logiciel
time.sleep(0.02)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup
Vérification attendue
python bouton.py affiche un message à chaque appui, sans matériel externe autre que le bouton. Au Ctrl-C, le script se termine proprement et libère la broche.
Erreurs fréquentes
- Oublier
pull_up_down=GPIO.PUD_UP: l'entrée flotte et affiche des appuis fantômes. - Câbler le bouton vers 3,3 V au lieu de GND : état inversé, rappel interne qui « saute ».
- Sur les toutes premières cartes, P1-13 portait le numéro GPIO21 ; vérifier avec
gpioinfoavant de recâbler. - Exécuter sans les droits GPIO sur une image récente : utiliser sudo ou le groupe gpio.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython