Note

Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.

👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !

2.1.1 Bouton

Introduction

Dans ce projet, nous allons apprendre à allumer ou éteindre une LED en utilisant un bouton.

Composants nécessaires

Dans ce projet, nous avons besoin des composants suivants.

../_images/2.1.1_Button_list.png

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément avec les liens ci-dessous.

INTRODUCTION DU COMPOSANT

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

LED

ACHETER

Bouton

ACHETER

Schéma de montage

Utilisez un bouton normalement ouvert comme entrée du Raspberry Pi, la connexion est montrée dans le schéma ci-dessous. Lorsque le bouton est pressé, le GPIO18 passera à un niveau haut (3,3V). Nous pouvons détecter l’état du GPIO18 par programmation. C’est-à-dire, si le GPIO18 passe à un niveau haut, cela signifie que le bouton est pressé. Vous pouvez exécuter le code correspondant lorsque le bouton est pressé, et alors la LED s’allumera.

Note

La broche la plus longue de la LED est l’anode et la plus courte est la cathode.

../_images/2.1.1_Button_schematic_1.png ../_images/2.1.1_Button_schematic_2.png

Procédures expérimentales

Étape 1 : Construisez le circuit.

../_images/2.1.1_Button_circuit.png

Étape 2 : Ouvrez le fichier de code.

cd ~/raphael-kit/python-pi5

Étape 3 : Exécutez le code.

sudo python3 2.1.1_Button_zero.py

Maintenant, appuyez sur le bouton et la LED s’allumera ; relâchez le bouton et la LED s’éteindra.

Avertissement

Si vous recevez le message d’erreur RuntimeError: Cannot determine SOC peripheral base address, veuillez consulter Si « gpiozero » ne fonctionne pas.

Code

Note

Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez aller au chemin du code source comme raphael-kit/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.

#!/usr/bin/env python3
from gpiozero import LED, Button  # Import LED and Button classes from gpiozero
from signal import pause  # Import pause function from signal module

# Initialize an LED object on GPIO pin 17
led = LED(17)
# Initialize a Button object on GPIO pin 18
button = Button(18)

# Link the button's "when_pressed" event to the LED's on() method
button.when_pressed = led.on
# Link the button's "when_released" event to the LED's off() method
button.when_released = led.off

# Run an event loop that waits for button events and keeps the script running
pause()

Explication du code

  1. Le script est écrit en Python3 et il importe les classes LED et Button de la bibliothèque gpiozero, ainsi que la fonction pause du module signal.

    #!/usr/bin/env python3
    from gpiozero import LED, Button  # Import LED and Button classes from gpiozero
    from signal import pause  # Import pause function from signal module
    
  2. Initialise un objet LED sur la broche GPIO 17 et un objet Button sur la broche GPIO 18.

    # Initialize an LED object on GPIO pin 17
    led = LED(17)
    # Initialize a Button object on GPIO pin 18
    button = Button(18)
    
  3. Configure des gestionnaires d’événements pour que la LED s’allume lorsque le bouton est enfoncé et s’éteigne lorsque le bouton est relâché.

    # Link the button's "when_pressed" event to the LED's on() method
    button.when_pressed = led.on
    # Link the button's "when_released" event to the LED's off() method
    button.when_released = led.off
    
  4. Cela permet de maintenir le script en cours d’exécution dans une boucle d’événements, en attente des événements de pression et de relâchement du bouton.

    # Run an event loop that waits for button events and keeps the script running
    pause()