MicroPython: Commander un moteur via transistor
La commande de puissance via transistor rester quand même un point clé des montages Maker. Voici un nouveau tuto issu de notre Kit Découverte MicroPython
Nous allons donc utiliser un transistor avec notre PyBoard pour contrôler l'activation d'un moteur jouet.
Pourquoi utiliser un transistor?
Les sorties de PyBoard sont géniales pour contrôler directement de petits éléments électriques tels que des LEDs.
Cependant, lorsque l'on s'attaque à de plus gros composants (tels qu'un moteur de jouet ou de machine à laver), un transistor complémentaire est alors nécessaire. Un transistor est incroyablement utile. Il commute une grande quantité de courant en utilisant une quantité de courant bien plus petite.
Un transistor à 3 broches. Pour un transistor de type négatif (NPN), vous connectez la charge au collecteur et l'émetteur à la masse. Alors, lorsqu'un petit courant circulera de la base à l'émetteur, un courant circulera à travers le transistor et votre moteur tournera (cela se produira lorsque nous mettrons la broche de notre PyBoard à HIGH).
Nous allons utiliser un transistor P2N2222AG, les facteurs importants dans notre cas sont la tension maximale (40 volts) et le courant maximum (600 milliampères) qui sont tous deux largement suffisant pour notre moteur de jouet
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 point renvoyée par le moteur lorsque vous voulez déconnecter celui-ci. 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).
Présence du bloc pile
Le moteur à besoin d'une tension d'alimentation entre 5 et 9 volts. Il n'est donc pas question d'alimenter d'alimenter notre moteur depuis le PyBoard (3.3V), d'ailleurs le régulateur du PyBoard ne pourrait pas fournir le courant nécessaire.
Il serait possible de se brancher sur la broche vin du PyBoard et d'ainsi obtenir les 5 Volts provenant de la connexion USB (si votre PyBoard est branché sur un ordinateur). Cependant, un moteur est quand même source de parasites qui seront renvoyé sur la source d'alimentation vin et le port USB. Ce n'est bien entendu pas une situation idéale car le matériel informatique et les microcontrôleurs n'aiment pas les parasites.
Nous allons donc opter pour une source d'alimentation externe pour le moteur, une source de 9V produite par un bloc de 6 piles AA. L'avantage est de disposer d'une alimentation assez puissante (1500mAh) pour le moteur et séparée de l'alimentation de la PyBoard (généralement recommandé).
Le code
Le tutoriel
Notre tutoriel contient de nombreuses autres informations très utiles et pertinentes.
Vous y trouverez un code étendu avec contrôle de la vitesse, de l'accélération, comment choisir le timer et le canal pour commander une broche en PWM, l'utilisation d'une masse commune, etc.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
Nous allons donc utiliser un transistor avec notre PyBoard pour contrôler l'activation d'un moteur jouet.
Pourquoi utiliser un transistor?
Les sorties de PyBoard sont géniales pour contrôler directement de petits éléments électriques tels que des LEDs.
Cependant, lorsque l'on s'attaque à de plus gros composants (tels qu'un moteur de jouet ou de machine à laver), un transistor complémentaire est alors nécessaire. Un transistor est incroyablement utile. Il commute une grande quantité de courant en utilisant une quantité de courant bien plus petite.
Un transistor à 3 broches. Pour un transistor de type négatif (NPN), vous connectez la charge au collecteur et l'émetteur à la masse. Alors, lorsqu'un petit courant circulera de la base à l'émetteur, un courant circulera à travers le transistor et votre moteur tournera (cela se produira lorsque nous mettrons la broche de notre PyBoard à HIGH).
Nous allons utiliser un transistor P2N2222AG, les facteurs importants dans notre cas sont la tension maximale (40 volts) et le courant maximum (600 milliampères) qui sont tous deux largement suffisant pour notre moteur de jouet
Montage
Source: wiki.mchobby.be |
La diode 1N4001 est utilisé comme diode anti-retour (aussi dit "en roue libre"), cette diode sert a court-circuiter la point renvoyée par le moteur lorsque vous voulez déconnecter celui-ci. 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).
Présence du bloc pile
Le moteur à besoin d'une tension d'alimentation entre 5 et 9 volts. Il n'est donc pas question d'alimenter d'alimenter notre moteur depuis le PyBoard (3.3V), d'ailleurs le régulateur du PyBoard ne pourrait pas fournir le courant nécessaire.
Il serait possible de se brancher sur la broche vin du PyBoard et d'ainsi obtenir les 5 Volts provenant de la connexion USB (si votre PyBoard est branché sur un ordinateur). Cependant, un moteur est quand même source de parasites qui seront renvoyé sur la source d'alimentation vin et le port USB. Ce n'est bien entendu pas une situation idéale car le matériel informatique et les microcontrôleurs n'aiment pas les parasites.
Nous allons donc opter pour une source d'alimentation externe pour le moteur, une source de 9V produite par un bloc de 6 piles AA. L'avantage est de disposer d'une alimentation assez puissante (1500mAh) pour le moteur et séparée de l'alimentation de la PyBoard (généralement recommandé).
Le code
# Contrôle d'un moteur jouet à l'aide d'un transistor. from pyb import Timer, delay # Brancher le moteur sur X3 MOTOR_PIN = pyb.Pin.board.X3 # fonction qui permet de passer d'un range de valeur (in_) à une autre # (out_) en appliquant une règle de trois. def arduino_map(x, in_min, in_max, out_min, out_max): return int( (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min ) # Eteint simplement le moteur def motorOff(): onTime = 2500 # temps allumé offTime = 1000 # temps éteint p = pyb.Pin( MOTOR_PIN, pyb.Pin.OUT_PP ) p.low() # Allume puis éteind le moteur a interval régulier def motorOnThenOff(): onTime = 2500 # temps allumé offTime = 1000 # temps éteint p = pyb.Pin( MOTOR_PIN, pyb.Pin.OUT_PP ) # Répéter l'opération encore et encore while True: p.high() delay( onTime ) p.low() delay( offTime ) # motorOff() motorOnThenOff()
Le tutoriel
Notre tutoriel contient de nombreuses autres informations très utiles et pertinentes.
Vous y trouverez un code étendu avec contrôle de la vitesse, de l'accélération, comment choisir le timer et le canal pour commander une broche en PWM, l'utilisation d'une masse commune, etc.
- La page des tutoriels du Discovery Kit
- Tutoriel "Commande de moteur via transistor" avec MicroPython PyBoard.
- 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)
- Bloc pile 6xAA
- Transistor P2N2222AG
- Fils
- Moteur jouet
- Diode 1N4001
- Résistance 2.2K Ohms
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
Écrire un commentaire