Raspberry Pi Pico - Bouton

Le bouton est un composant de base mais essentiel utilisé dans de nombreux projets Raspberry Pi Pico. Cela peut sembler complexe en raison de ses caractéristiques mécaniques et physiques, ce qui peut être difficile pour les débutants. Ce guide est conçu pour faciliter la compréhension des débutants. Commençons !

bouton Raspberry Pi Pico

※ Note:

Avant de commencer à utiliser un bouton avec le Raspberry Pi Pico, veuillez prendre connaissance de deux problèmes typiques auxquels les débutants sont souvent confrontés :

  1. Le problème d'entrée flottante :
    • Symptôme: L'état de la broche d'entrée connectée à un bouton sur le Raspberry Pi Pico est instable et ne reflète pas fidèlement l'état du bouton.
    • Cause: La broche du bouton n'est reliée à aucune résistance de tirage vers le bas (pull-down) ni vers le haut (pull-up).
    • Solution: Branchez une résistance de tirage vers le bas (pull-down) ou vers le haut (pull-up) sur la broche d'entrée. Nous expliquerons cela plus tard dans le guide.
  • Le phénomène de rebondissement :
    • Symptôme: Le code sur le Raspberry Pi Pico lit l'état du bouton pour détecter les appuis en détectant les changements d'état (de HIGH à LOW, ou inversement). Mais il peut enregistrer plusieurs appuis pour un seul appui réel sur le bouton.
    • Cause: Les caractéristiques mécaniques du bouton peuvent provoquer un passage rapide de l'état de la broche d'entrée entre HIGH et LOW lors d'un seul appui.
    • Solution: Utilisez une méthode appelée debounce (anti-rebond). Des détails seront fournis dans un tutoriel ultérieur sur le debouncing.

    Note : le rebondissement affecte principalement les situations où vous devez compter avec précision les appuis sur le bouton. Cela peut ne pas être un problème majeur dans d'autres scénarios.

    Préparation du matériel

    1×Raspberry Pi Pico W
    1×Raspberry Pi Pico Alternativement:
    1×Câble Micro USB
    1×Bouton avec capuchon pour plaque d'essai
    1×Kit bouton pour plaque d'essai
    1×Panel-mount Button
    1×Module bouton poussoir
    1×Plaque d'essai
    1×Fils de connexion
    1×Recommandé: Carte d'extension à bornier à vis pour Raspberry Pi Pico

    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.

    À propos du bouton

    Le bouton-poussoir, parfois appelé bouton tactile ou interrupteur momentané, est un type d’interrupteur qui se connecte lorsque vous appuyez et le maintenez enfoncé, et se déconnecte lorsque vous le relâchez. Il existe divers types de boutons-poussoirs, principalement classés en deux groupes :

    • Push buttons suitable for PCB or breadboard installation
    • Push buttons designed for panel installation
    Bouton-poussoir Raspberry Pi Pico

    Schéma des broches

    Les boutons montés sur circuit imprimé ont généralement quatre broches.

    Schéma des broches des boutons

    Ces broches sont appariées en interne, donc nous n'avons besoin d'utiliser que deux des quatre broches qui ne sont pas reliées à l'intérieur.

    Il y a quatre méthodes pour connecter le bouton, comme montré sur l'image, mais en réalité seulement deux, puisqu'elles sont similaires.

    Comment utiliser le bouton

    Un bouton a quatre broches, mais nous n'en utilisons généralement que deux. Cela l'aide à rester stable sur la carte et à résister à la pression.

    Les boutons montés sur panneau ont généralement deux broches.

    Pinout d'un bouton-poussoir à deux broches
    image source: diyables.io

    Le module de bouton-poussoir comporte une résistance de tirage vers le bas intégrée, ce qui assure que la sortie reste à l'état bas lorsque le bouton n'est pas enfoncé. Il possède trois broches :

    • GND: Connectez cette broche à la masse.
    • VCC: Connectez cette broche à une alimentation de 3,3 V.
    • OUT: Connectez cette broche à une entrée numérique sur votre Raspberry Pi Pico Push.

    Avec cette configuration, la sortie du module est LOW lorsque le bouton n'est pas enfoncé et est HIGH lorsque le bouton est enfoncé.

    Comment ça fonctionne

    • Lorsque le bouton n'est pas enfoncé, la broche A et la broche B sont déconnectées.
    • Lorsque le bouton est enfoncé, la broche A et la broche B sont connectées.
    Comment fonctionne le bouton

    Raspberry Pi Pico - Bouton

    Une broche de bouton se connecte à VCC ou à la masse, tandis que l'autre broche se connecte à une broche du Raspberry Pi Pico.

    Nous pouvons déterminer si le bouton est enfoncé en vérifiant l'état de la broche d'entrée sur le Raspberry Pi Pico.

    État du bouton et état d'appui

    La liaison entre l'état du bouton et le moment où il est pressé est déterminée par la manière dont nous connectons le bouton au Raspberry Pi Pico et par la configuration de la broche du Raspberry Pi Pico.

    Vous pouvez utiliser un bouton avec le Raspberry Pi Pico de deux façons :

    1. Connectez une broche du bouton à VCC et l'autre broche à une broche du Raspberry Pi Pico. Incluez une résistance de tirage vers le bas dans cette connexion.
      • Lorsque le bouton est enfoncé, la broche du Raspberry Pi Pico devient élevée. Lorsqu'il n'est pas enfoncé, elle est basse.
      • Vous devez utiliser une résistance supplémentaire que vous ajoutez vous-même.
  • Connectez une broche du bouton à GNRD et l'autre broche à une broche du Raspberry Pi Pico. Incluez une résistance de tirage vers le haut dans cette connexion.
    • Lorsque le bouton est enfoncé, la broche du Raspberry Pi Pico devient basse. Lorsqu'il n'est pas enfoncé, elle est haute.
    • Vous pouvez utiliser une résistance intégrée (interne) ou en ajouter une vous-même (extérieure). Pour utiliser la résistance intégrée, configurez-la avec le code du Raspberry Pi Pico.

    ※ Note:

    Sans résistance de tirage vers le bas (pull-down) ni vers le haut (pull-up), la broche d'entrée est « flottante » lorsque le bouton n'est pas enfoncé, ce qui fait que l'état de la broche peut basculer de manière imprévisible entre HIGH et LOW, entraînant des lectures inexactes.

    • Mauvaise pratique : Configurer la broche du Raspberry Pi Pico comme entrée avec button = Pin(BUTTON_PIN, Pin.IN) et sans résistance de tirage (pull-down) ni pull-up.
    • Bonne pratique : Configurer la broche du Raspberry Pi Pico avec une résistance de tirage interne vers le haut en utilisant button = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP). Cela élimine le besoin d'une résistance externe.

    Ce guide vous montre la manière la plus simple de commencer : nous utilisons une méthode où vous configurer une broche du Raspberry Pi Pico avec une entrée pull-up interne. Ainsi, vous n'avez pas besoin d'une résistance externe. Les débutants devraient simplement utiliser le code du Raspberry Pi Pico que nous fournissons.

    Diagramme de câblage

    • Guide de câblage pour Raspberry Pi Pico et un bouton monté sur circuit imprimé
    Schéma de câblage du bouton Raspberry Pi Pico

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

    • Connectez le Raspberry Pi Pico à un bouton monté sur panneau en suivant ce guide :
    Schéma de câblage du bouton-poussoir à deux broches Raspberry Pi Pico

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

    Comment programmer pour le bouton

    • Configure la broche du Raspberry Pi Pico en tant qu’entrée avec une résistance de tirage interne, en utilisant la fonction Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP).
    button = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP)
    • Vérifie l'état de la broche du Raspberry Pi Pico.
    button_state = button.value()

    ※ Note:

    Il existe deux situations courantes :

    • La première : Lorsque l'entrée est à un niveau élevé, faites quelque chose. Lorsque l'entrée est à un niveau bas, faites le contraire.
    • La deuxième : Lorsque l'entrée passe de bas à haut (ou de haut à bas), faites quelque chose.

    Selon l'objectif, nous choisissons l'une de ces options. Par exemple, lors de l'utilisation d'un bouton pour contrôler une lumière (LED) :

    • Si nous avons besoin que la lumière s'allume lorsque l'on appuie sur le bouton et s'éteigne lorsqu'on n'appuie pas dessus, nous devrions utiliser la première situation.
    • Si nous voulons que la lumière s'allume et s'éteigne à chaque fois que le bouton est pressé, nous devrions utiliser la deuxième situation.

    Code du Raspberry Pi Pico - Lecture de l'état du bouton

    from machine import Pin import time BUTTON_PIN = 0 # The Raspberry Pi Pico pin connected to the button (GP0) # Set up the button pin. The Pin.PULL_UP enables the internal pull-up resistor. button = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP) while True: # Read the state of the button button_state = button.value() # Print the button's state print(button_state) # Wait for half a second before reading the button again time.sleep(0.5)

    Étapes rapides

    Veuillez suivre ces instructions étape par étape :

    • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
    • Assurez-vous que le firmware MicroPython est installé sur votre Raspberry Pi Pico.
    • Si c'est la première fois que vous utilisez un Raspberry Pico, reportez-vous au tutoriel Raspberry Pi Pico - Premiers pas. pour obtenir des instructions détaillées.
    • Connectez le bouton au Raspberry Pi Pico selon le schéma fourni.
    • Connectez le Raspberry Pi Pico à votre ordinateur à l'aide d'un câble USB.
    • Lancez l'IDE Thonny sur votre ordinateur.
    • Dans l'IDE Thonny, sélectionnez l'interpréteur MicroPython (Raspberry Pi Pico) en accédant à Outils Options.
    • Dans l'onglet Interpréteur, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
    • Assurez-vous que le bon port est sélectionné. L'IDE Thonny détectera automatiquement le port, mais vous devrez peut-être le sélectionner manuellement (par exemple COM3 sur Windows ou /dev/ttyACM0 sur Linux).
    • Copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Thonny.
    • Enregistrez le script sur votre Raspberry Pi Pico en procédant comme suit :
      • Cliquez sur le bouton Enregistrer, ou utilisez les touches Ctrl+S.
      • Dans la boîte de dialogue d'enregistrement, vous verrez deux sections : Cet ordinateur et Raspberry Pi Pico. Sélectionnez Raspberry Pi Pico.
      • Enregistrez le fichier sous main.py.
    • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
    • Vérifiez le message dans le Shell en bas de Thonny.
    Shell x
    >>> %Run -c $EDITOR_CONTENT
    MPY: soft reboot 1 1 1 0 0 0 0 0 0 1 1 1
    MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

    1 signifie non enfoncé, 0 signifie enfoncé.

    Si vous nommez votre script main.py et que vous le sauvegardez dans le répertoire racine du Raspberry Pi Pico, il s’exécutera automatiquement à chaque mise sous tension ou réinitialisation du Pico. Cela est utile pour les applications autonomes qui doivent démarrer immédiatement lors de l’alimentation. Si vous nommez votre script sous un autre nom que main.py, vous devrez l’exécuter manuellement depuis le Shell de Thonnys.

    Explication du code

    Vous pouvez trouver l'explication dans la section des commentaires du code Raspberry Pi Pico fourni précédemment.

    Code du Raspberry Pi Pico - Détection de l'appui et du relâchement du bouton

    Modifions le code pour qu'il puisse détecter quand les boutons sont pressés et relâchés.

    /* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico 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-pico/raspberry-pi-pico-button */ from machine import Pin import time BUTTON_PIN = 0 # The Raspberry Pi Pico pin connected to the button (GP0) # Setup the button pin. The Pin.PULL_UP enables the internal pull-up resistor. button = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP) # Initialize the previous state of the button prev_button_state = 1 # Assuming the button is unpressed initially while True: # Read the current state of the button button_state = button.value() # Check if button was released if prev_button_state == 0 and button_state == 1: print("The button is released") # Check if button was pressed if prev_button_state == 1 and button_state == 0: print("The button is pressed") # Save the current state as the previous state for the next loop iteration prev_button_state = button_state

    Étapes rapides

    • Copiez le code ci-dessus et collez-le dans Thonny IDE.
    • Cliquez sur le bouton vert Lancer (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
    • Appuyez sur le bouton puis relâchez-le.
    • Vérifiez le message dans la Shell en bas de Thonny.
    Shell x
    >>> %Run -c $EDITOR_CONTENT
    MPY: soft reboot The button is pressed The button is released
    MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

    ※ Note:

    • Parfois, lorsque vous appuyez et relâchez un bouton une fois, la console de Thonny peut indiquer que cela s'est produit plusieurs fois. Ce problème courant est appelé « phénomène de chatter ». Plus d'informations et la solution sont disponibles dans le Raspberry Pi Pico - Bouton - Anti-rebond..
    • Si vous utilisez le module bouton, définissez la broche comme une entrée avec button = Pin(BUTTON_PIN, Pin.IN). Dans cette configuration, le module émet LOW lorsque le bouton n'est pas enfoncé et HIGH lorsqu'il est enfoncé.

    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 !