MicroPython: Commande de relais
Voici un nouveau petit tutoriel pour MicroPython Pyboard issu de notre Kit Découverte MicroPython... de quoi occuper vos vacances de Noel :-)
Le prochain circuit est une sorte de test. Nous allons combiner ce que nous avons appris à propos de l'utilisation du transistor dans le montage moteur pour contrôler un relais.
Un relais est un interrupteur mécanique contrôlé électriquement. A l'intérieur de la petite boîte il y a un électro-aimant qui, une fois alimenté, enclenche l'interrupteur (souvent avec un cliquetis sonore).
Vous pouvez acheter des relais dont la taille varie du quart de celui présent dans ce kit d'apprentissage à celle d'un frigo, chacun capable de commuter une certaine quantité de courant.
Ils sont très amusants parce qu'ils comportent des éléments mécaniques. Bien que, jusqu'à maintenant, tout ce silicium avec lequel nous avons bricolé est vraiment amusant, quelquefois vous voulez juste brancher des interrupteurs pour contrôler quelque chose de magnifique.
Les relais vous offrent la possibilité d'y rêver pour ensuite le contrôler avec votre PyBoard.
Le montage
Vous noterez également que les LEDs sont alimentées en 5 Volts, raison pour laquelle nous utilisons une résistance de 470 Ohms (ou 330 Ohms) pour limiter le courant.
Le code
Dès la mise sous tension du montage, une des deux LEDs doit être allumée (la rouge selon le montage).
Le programme ci-dessous active le relais pendant une seconde toutes les 5 secondes... de sorte que l'autre LED s'allume pendant une période de 1 seconde à chaque fois.
Classe PullUpButton
Voici une petite classe dont le but est de détecter UNE SEULE FOIS la pression d'un bouton.
La méthode is_pressed() permet de capturer la pression d'un bouton sur une entrée, et retourne True lorsque l'entrée passe au niveau bas (lorsque le bouton est pressé).
La détection de la pression se fait comme suit:
Vous pouvez remarquer que le message "le bouton a été enfoncé" n'apparaît qu'une seule fois lorsque vous pressez le bouton.
Le tutoriel
Notre tutoriel sur le wiki de mchobby contient beaucoup d'autres informations autour du relais.
Vous y apprendrez aussi comment réaliser un télérupteur ou un temporisateur.
Où Acheter
Le prochain circuit est une sorte de test. Nous allons combiner ce que nous avons appris à propos de l'utilisation du transistor dans le montage moteur pour contrôler un relais.
Un relais est un interrupteur mécanique contrôlé électriquement. A l'intérieur de la petite boîte il y a un électro-aimant qui, une fois alimenté, enclenche l'interrupteur (souvent avec un cliquetis sonore).
Vous pouvez acheter des relais dont la taille varie du quart de celui présent dans ce kit d'apprentissage à celle d'un frigo, chacun capable de commuter une certaine quantité de courant.
Ils sont très amusants parce qu'ils comportent des éléments mécaniques. Bien que, jusqu'à maintenant, tout ce silicium avec lequel nous avons bricolé est vraiment amusant, quelquefois vous voulez juste brancher des interrupteurs pour contrôler quelque chose de magnifique.
Les relais vous offrent la possibilité d'y rêver pour ensuite le contrôler avec votre PyBoard.
Le montage
Présence de la diode
La diode 1N4001 est utilisé comme diode anti-retour (aussi dit "en roue libre"), cette diode sert a court-circuiter la pointe de tension renvoyée par le relais lorsque celui-ci est désactivé. Lorsque l'on déconnecte une charge d'un circuit, celle-ci rend l'énergie qu'elle à accumulée au circuit (comme c'est un processus de réaction, la polarité est inversée).La présence de la diode est indispensable. Sans elle, le transistor serait rapidement détruit. Faites également attention à l'anneau argenté qui sert de détrompeur (le "-" de la diode). |
Attention VIN = 5volts
Vous aurez remarqué que nous utilisons VIN (tension d'alimentation de la PyBoard) et que cette dernière est justement à 5 volts. Les 5 volts nécessaires sont fournit via la connexion USB de la PyBoard.Le relais est équipé d'un bobinage 5 Volts, il ne fonctionnera pas sous 3.3 volts, il est donc important d'avoir une source d'alimentation de 5 Volts pour activer le relais. |
Le code
Dès la mise sous tension du montage, une des deux LEDs doit être allumée (la rouge selon le montage).
Le programme ci-dessous active le relais pendant une seconde toutes les 5 secondes... de sorte que l'autre LED s'allume pendant une période de 1 seconde à chaque fois.
# Contrôle d'un relais branché sur le X8 from pyb import delay # Déclaration et initialisation des broches RELAY_PIN = pyb.Pin.board.X8 p = pyb.Pin( RELAY_PIN, pyb.Pin.OUT_PP ) p.low() def RelayOff(): p.low() def RelayOnThenOff(): # Boucle infinie, répète le cycle toutes les 5 secondes while True: # Active le relay pendant une seconde p.high() delay( 1000 ) p.low() # Attend 4 secondes delay( 4000 ) # RelayOff() RelayOnThenOff()
Classe PullUpButton
Voici une petite classe dont le but est de détecter UNE SEULE FOIS la pression d'un bouton.
La méthode is_pressed() permet de capturer la pression d'un bouton sur une entrée, et retourne True lorsque l'entrée passe au niveau bas (lorsque le bouton est pressé).
""" 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
La détection de la pression se fait comme suit:
b = PullUpButton( pyb.Pin.board.X5 ) while True: if b.is_pressed(): print('le bouton a été enfoncé')
Vous pouvez remarquer que le message "le bouton a été enfoncé" n'apparaît qu'une seule fois lorsque vous pressez le bouton.
Le tutoriel
Notre tutoriel sur le wiki de mchobby contient beaucoup d'autres informations autour du relais.
Vous y apprendrez aussi comment réaliser un télérupteur ou un temporisateur.
Où Acheter
- Kit Découverte MicroPython
- La carte PyBoard originale
- Pyboard lite v1.0 (avec accéléromètre)
- Pyboard lite v1.0 (sans accéléromètre)
Écrire un commentaire