Apprendre à utiliser les broches GPIO de votre Raspberry Pi ouvre un monde de possibilités. Les bases acquises avec des projets pour débutants vous initient à l'électronique DIY et à la programmation.
Ce tutoriel détaillé présente deux façons d'ajouter un bouton poussoir à votre Raspberry Pi pour contrôler une LED. Suivez les instructions écrites accompagnées de la vidéo.
Pour démarrer, rassemblez ces composants :
Vos composants devraient ressembler à ceci :

Vous aurez aussi besoin d'une carte SD avec Raspbian (ou Raspberry Pi OS). Utilisez NOOBS pour une installation rapide. Voir la vidéo dédiée.
Utilisez les broches GPIO. Consultez notre guide des broches GPIO si nécessaire. Ce circuit étend notre projet LED précédent avec un bouton.
Montez selon ce schéma :

Votre montage final :

Vérifiez tout, puis allumez le Raspberry Pi.
Démarrez le Raspberry Pi, ouvrez Programmation > Thonny Python IDE. Créez un nouveau script. Python est idéal pour débutants.

Importez RPi.GPIO et activez le mode BOARD :
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
Définissez les broches (mode BOARD = numéros physiques) :
ledPin = 12
buttonPin = 16
Consultez le tableau des broches si besoin.

LED en sortie, bouton en entrée avec pull-up interne :
GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
La pull-up interne maintient HIGH jusqu'au pressage (vers GND).
Une entrée GPIO lit HIGH, LOW ou FLOATING (instable). Les pull-up/down évitent le flottant.

Schémas simplifiés montrent le fonctionnement. Pull-up : HIGH par défaut, LOW au pressage.

Pull-down inverse. Essentiel pour microcontrôleurs.
while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)
Loop infinie lit le bouton : LOW allume LED, HIGH l'éteint.
Fichier > Enregistrer sous. Cliquez Jouer (vert). Stop (rouge) pour arrêter.

Testez : LED s'allume au pressage !

Problèmes ? Vérifiez code et circuit.
GPIO Zero simplifie le code (par Ben Nuttall, Raspberry Pi).
Nouveau script :
from gpiozero import LED, Button
from signal import pause
Instanciez :
led = LED(18)
button = Button(23)
Numéros BCM (GPIO). Événements :
button.when_pressed = led.on
button.when_released = led.off
pause()
Sauvegardez, exécutez : même résultat, code minimal !
GPIO Zero est plus simple, mais maîtrisez RPi.GPIO pour projets avancés. Appliquez à d'autres idées !
Explorez notre guide Raspberry Pi. Essayez un bouton Wi-Fi connecté.
[]