Header Ads

MicroPython WiPy - Utiliser un bouton

Bonjour,

Ajout d'un tutoriel super complet sur l'utilisation des entrées digitales sur le WiPy.
Utiliser un bouton, c'est simple mais c'est aussi un sujet pouvant couvrir un domaine de connaissance beaucoup plus large qu'attendu.

Tutoriel Bouton pour le WiPy


Pour lire l'état du bouton, vous devez déclarer la broche en entrée et activer la résistance pull-up (voyez l'explication en début d'article sur le WiPy)











from machine import Pin
gp8 = Pin( 'GP8', mode=Pin.IN, pull=Pin.PULL_UP )

Ensuite, vous pouvez lire l'état de l'entrée avec

gp8()
gp8.value()


Dans les deux cas d'appel, les valeurs retournées sont:
  • 0 si la broche est au niveau bas
  • 1 si la broche est au niveau haut

Attention: logique inversée

Etant donné que le bouton utilise le montage pull-up (voyez en début de tutoriel) gp8.value() retourne une valeur en logique inversée.

La broche GP8 sera:
  • au niveau haut (3.3v) lorsque personne ne presse sur le bouton
  • au niveau bas (0v) lorsque quelqu'un presse le bouton
L'appel gp8.value() retourne donc un valeur en logique inversée:
  • 1: signifie que le bouton N'EST PAS pressé
  • 0: signifie que le bouton EST pressé
Un exemple plus complet

# Cet exemple controle la LED heartbeat et la fait clignoter jusqu'à ce que l'on presse 
#    sur le bouton raccordé sur GP8.
# Le but est d'apprendre a utiliser une entrée du WiPy avec un bouton
# 
#
# Ou acheter un WiPy et une carte d'extension
#   http://shop.mchobby.be/product.php?id_product=736 
#   http://shop.mchobby.be/product.php?id_product=737
#   http://shop.mchobby.be/category.php?id_category=68
#
# Voyez le tutoriel 
#   http://wiki.mchobby.be/index.php?title=Hack-wipy-button
#
# Auteur: Meurisse D. pour shop.mchoby.be
# Licence: CC-BY-SA
#
from machine import Pin
import time
import wipy

# Desactiver HeartBeat + reconfigurer
wipy.heartbeat( False )
led = Pin( 'GP25', mode=Pin.OUT )
led.value( 0 )

# Declare la broche en entrée
gp8 = Pin( 'GP8', mode=Pin.IN, pull=Pin.PULL_UP )

# tant que le bouton n'est pas pressé
while gp8.value() == 1:
    led.toggle()         # changer etat led
    time.sleep_ms( 200 ) # attendre 0.2 sec

# Eteindre la LED
led.value( 0 )

# Réactiver heartbeat
del( led )
wipy.heartbeat( True )


Le tutoriel
Le tutoriel sur le bouton est nettement plus complet que cette introduction. Nous vous proposons de lire la suite ici:
Où acheter
Le WiPy est disponible de stock chez MCHobby.