Ligne 220 : |
Ligne 220 : |
| Comme vous pouvez le constater sur le montage ci-dessus, le bouton ramène la broche X5 à la masse lorsque celui-ci est pressé. | | Comme vous pouvez le constater sur le montage ci-dessus, le bouton ramène la broche X5 à la masse lorsque celui-ci est pressé. |
| | | |
− | <nowiki># Controle d'un relais branché sur X8 à l'aide du bouton branché sur X5</nowiki> | + | <nowiki># Controle d'un relais branché sur X8 à l'aide du bouton branché sur X5 |
| + | # Contrôle d'un relais branché sur le X8 |
| + | from pyb import delay |
| + | |
| + | # Relais |
| + | RELAY_PIN = pyb.Pin.board.X8 |
| + | relais = pyb.Pin( RELAY_PIN, pyb.Pin.OUT_PP ) |
| + | relais.low() |
| + | |
| + | """ Classe pour gérer un bouton pull-up sur une broche X. |
| + | Détecte lorsque la broche passe à 0 """ |
| + | class PullUpButton: |
| + | p = None # Pin object |
| + | state = None # Last known state |
| + | |
| + | def __init__( self, button_pin ): |
| + | self.p = pyb.Pin( button_pin, pyb.Pin.IN, pull=pyb.Pin.PULL_UP ) |
| + | self.state = self.p.value() |
| + | |
| + | def is_pressed(self): |
| + | """ vérifie si le bouton est pressé / détecte le changement |
| + | d'état. Ne sera signalé qu'une seule fois! """ |
| + | val = self.p.value() |
| + | result = False |
| + | if val != self.state: |
| + | # relecture dans 10 ms (deboucing) |
| + | pyb.delay( 10 ) |
| + | val2 = self.p.value() |
| + | if val == val2: # valeur stable :) |
| + | self.state = val |
| + | result = (val == 0) # Is pressed |
| + | return result |
| + | |
| + | # Bouton |
| + | BTN_PIN = pyb.Pin.board.X5 |
| + | b = PullUpButton( BTN_PIN ) |
| + | |
| + | # Corps du programme |
| + | while True: |
| + | if b.is_pressed(): |
| + | if relais.value() == 1: |
| + | relais.low() |
| + | else: |
| + | relais.high()</nowiki> |
| + | |
| === Réaliser un temporisateur === | | === Réaliser un temporisateur === |
| Toujours avec le bouton poussoir banché sur la broche X5, nous allons aussi avoir l'opportunité de réaliser un temporisateur. | | Toujours avec le bouton poussoir banché sur la broche X5, nous allons aussi avoir l'opportunité de réaliser un temporisateur. |