Utilisation d'un interrupteur de bouton-poussoir avec le Raspberry Pi

Using a Push Button Switch with the Raspberry Pi

 

Un commutateur à bouton-poussoir est un dispositif d'entrée simple mais efficace souvent utilisé dans des projets comme le démarrage ou l'arrêt des processus, le contrôle des LED ou le déclenchement des événements. Ce tutoriel vous guidera dans la connexion d'un interrupteur à bouton-poussoir au Raspberry Pi, la configuration du câblage et l'écriture d'un script Python pour détecter les appuyés sur le bouton.


Ce dont vous aurez besoin

  1. Raspberry Pi (Tout modèle avec le support GPIO, par ex., PI 3, PI 4)
  2. Interrupteur à bouton-poussoir
  3. Fils de planche à pain et de cavalier
  4. Résistance (10kΩ pour le tir-down)
  5. Python installé Sur votre Raspberry Pi
  6. Bibliothèque GPIO pour contrôler les broches GPIO de Raspberry Pi

Étape 1: Câblage du bouton-poussoir vers le Raspberry Pi

Un interrupteur à bouton-poussoir fonctionne en connectant la broche GPIO à un état élevé (3,3 V) lorsqu'il est enfoncé ou en le tirant à bas (0V) lorsqu'il n'est pas enfoncé. Nous utiliserons une résistance déroulante pour nous assurer que la broche GPIO se lit à faible lorsque le bouton n'est pas enfoncé.

Câblage du bouton-poussoir

Pin sur le bouton-poussoir Broche de framboise pi gpio
Une épingle GPIO17 (broche 11)
Autre épingle Terre (broche 6)
Une épingle Résistance 10kΩ au sol

Voici la configuration du câblage:

  • Connectez un terminal du bouton-poussoir à GPIO17 (Broche 11).
  • Connectez l'autre terminal du bouton-poussoir à Sol (Broche 6).
  • Connectez une résistance de 10 kΩ entre GPIO17 et Sol pour agir comme une résistance tireuse.

Cela garantit que lorsque le bouton est enfoncé, GPIO17 lit haut (3,3 V), et lorsqu'il n'est pas enfoncé, GPIO17 est tiré à Low (0V) par la résistance.


Étape 2: Activer les broches GPIO dans Python

  1. Tout d'abord, mettez à jour la liste des packages de votre Raspberry Pi:

    sudo apt update
    sudo apt upgrade -y
    
  2. Installez la bibliothèque Python GPIO requise (si elle n'est pas déjà installée):

    sudo apt install python3-rpi.gpio
    
  3. Importez la bibliothèque dans votre script Python:

    import RPi.GPIO as GPIO
    import time
    

Étape 3: Écriture du code Python

Maintenant, écrivons un script Python pour détecter le moment où le bouton est enfoncé et prenons des mesures en conséquence.

Exemple de code python

import RPi.GPIO as GPIO
import time

# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM)        # Use BCM numbering
button_pin = 17               # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)  # Set up pin with pull-down resistor

# Function to detect button press
def button_callback(channel):
    print("Button was pressed!")

# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)

try:
    print("Press the button...")
    while True:
        # Keep the program running to wait for button press
        time.sleep(0.1)
except KeyboardInterrupt:
    print("Program exited")
finally:
    GPIO.cleanup()  # Clean up GPIO to ensure a clean exit

Explication du code:

  • Gpio.setmode (gpio.bcm): Définit la numérotation GPIO en mode BCM (Broadcom).
  • Gpio.setup (Button_pin, gpio.in, pull_up_down = gpio.pud_down): Configure la broche du bouton comme une entrée avec une résistance d'attraction, ce qui signifie qu'elle lira faible lorsqu'elle n'est pas appuyée.
  • Gpio.add_event_detect (): Détecte le bord montant (appuyez sur le bouton) de la broche GPIO et déclenche la fonction de rappel button_callback Lorsque le bouton est enfoncé.
  • Temps.: Maintient le script en cours d'exécution, ce qui lui permet d'attendre un bouton appuyer sur le bouton.
  • Gpio.cleanup (): Nettoie les paramètres GPIO lorsque le script est quitté.

Étape 4: Tester le bouton

  1. Exécutez votre script Python:

    python3 button.py
    
  2. Appuyez sur le bouton-poussoir et observez le message "Le bouton a été enfoncé!" dans le terminal.


Étape 5: Applications

Voici quelques idées d'utilisation du bouton-poussoir dans vos projets:

  1. Contrôler une LED: Utilisez le bouton-poussoir pour activer et désactiver une LED.
  2. Déclencher un événement: Démarrez ou arrêtez un processus (par exemple, démarrez un moteur, allumez un ventilateur ou lancez un script).
  3. Sonnette intelligente: Utilisez le bouton comme sonnette pour envoyer une notification à votre téléphone.
  4. Entrée utilisateur: Obtenez une entrée simple des utilisateurs pour vos projets (comme une réponse "oui / non").

Dépannage

  • Bouton non détecté:

    • Assurez-vous que le bouton est correctement câblé avec la résistance d'attraction.
    • Vérifiez votre configuration de broche GPIO dans le code.
  • Erreur GPIO:

    • Assurez-vous que la bibliothèque GPIO est installée correctement et que les numéros de broches de votre script sont corrects.
  • Rebond:

    • Si vous remarquez plusieurs pressions de bouton en cours de détection, vous pouvez ajouter un temps de débouchement (bouncetime=300 dans le script) pour éviter de fausses détections.

Conclusion

L'utilisation d'un commutateur à bouton-poussoir avec le Raspberry Pi est un moyen facile d'ajouter des fonctionnalités d'entrée à vos projets. Qu'il s'agisse de basculer les LED, de déclencher des événements ou d'interagir avec d'autres matériels, cette configuration simple peut être la base de nombreuses applications intéressantes. Expérimentez avec différentes épingles GPIO et déboncant les paramètres pour répondre à vos besoins!

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.