Raspberry Pi - Bouton - LED

Ce tutoriel vous explique comment utiliser le Raspberry Pi et un bouton pour contrôler la LED. Nous allons apprendre deux applications différentes :

Application 1 - L'état de la LED est synchronisé avec l'état du bouton. En détail :

L'Application 2 - L'état du LED est inversé chaque fois que le bouton est pressé. Plus précisément :

Dans l'Application 2, nous devons ajouter un débounce au bouton pour nous assurer qu'il fonctionne correctement. Nous comprendrons pourquoi c'est important en comparant le comportement de la LED lorsque nous utilisons le code Raspberry Pi avec et sans débounce du bouton.

Préparation du matériel

1×Raspberry Pi 5
1×Bouton avec capuchon pour plaque d'essai
1×Kit bouton pour plaque d'essai
1×Bouton poussoir pour montage sur panneau
1×Module bouton poussoir
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Raspberry Pi
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Raspberry Pi
1×Recommandé: Écran tactile HDMI pour Raspberry Pi

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.

À propos de la LED et du bouton

Si vous n'êtes pas familier avec les LED et les boutons (y compris le brochage, le fonctionnement et la programmation), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage LED avec bouton Raspberry Pi

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Pour simplifier et organiser votre montage de câblage, nous recommandons l'utilisation d'un shield à bornier à vis pour Raspberry Pi. Ce shield assure des connexions plus sûres et mieux gérées, comme illustré ci-dessous :

Shield à bornier à vis pour Raspberry Pi

Application 1 - L'état de la LED est synchronisé avec l'état du bouton

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous avez besoin d'installer certaines bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC à Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier de script Python button_led.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-button-led import RPi.GPIO as GPIO # Constants won't change. They're used here to set pin numbers: BUTTON_PIN = 16 # The number of the pushbutton pin LED_PIN = 18 # The number of the LED pin # Variables will change: button_state = 0 # Variable for reading the pushbutton status # Set up GPIO GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbering GPIO.setup(LED_PIN, GPIO.OUT) # Initialize the LED pin as an output GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the pushbutton pin as a pull-up input try: while True: # Read the state of the pushbutton value: button_state = GPIO.input(BUTTON_PIN) # Control LED according to the state of the button if button_state == GPIO.LOW: # If the button is pressed GPIO.output(LED_PIN, GPIO.HIGH) # Turn on LED else: # Otherwise, the button is not pressed GPIO.output(LED_PIN, GPIO.LOW) # Turn off LED except KeyboardInterrupt: # Clean up GPIO on program exit GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 button_led.py
  • Appuyez sur le bouton et maintenez-le enfoncé pendant quelques secondes.
  • Vérifiez la modification de l'état de la LED. Vous verrez que l'état de la LED est synchronisé avec l'état du bouton.

Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Explication du code

Consultez l'explication ligne par ligne contenue dans les commentaires du code source !

Application 2 - Le bouton bascule la LED

Étapes rapides

  • Créez un fichier de script Python button_toggle_led.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-button-led import RPi.GPIO as GPIO import time # Constants won't change BUTTON_PIN = 16 # The number of the pushbutton pin LED_PIN = 18 # The number of the LED pin # Variables will change led_state = GPIO.LOW # The current state of the LED prev_button_state = GPIO.LOW # The previous state of the button button_state = GPIO.LOW # The current state of the button # Set up GPIO GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbering GPIO.setup(LED_PIN, GPIO.OUT) # Initialize the LED pin as an output GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the pushbutton pin as a pull-up input try: while True: # Read the state of the pushbutton value prev_button_state = button_state # Save the last state button_state = GPIO.input(BUTTON_PIN) # Read new state if prev_button_state == GPIO.HIGH and button_state == GPIO.LOW: time.sleep(0.1) # 100 milliseconds debounce time print("The button is pressed") # Toggle the state of the LED if led_state == GPIO.LOW: led_state = GPIO.HIGH else: led_state = GPIO.LOW # Control LED according to the toggled state GPIO.output(LED_PIN, led_state) except KeyboardInterrupt: # Clean up GPIO on program exit GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 button_toggle_led.py
  • Appuyez et relâchez le bouton plusieurs fois.
  • Observez le changement de l'état de la LED. Vous verrez que l'état de la LED change à chaque fois que vous appuyez sur le bouton.

Explication du code

Consultez l'explication ligne par ligne contenue dans les commentaires du code source !

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !