ESP8266 - Moteur à courant continu
Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler un moteur à courant continu. En détail, nous apprendrons :
- Fonctionnement du moteur à courant continu
- Comment utiliser l'ESP8266 et le pilote L298N pour contrôler un moteur à courant continu
- Comment programmer l'ESP8266 pour contrôler la vitesse et la direction d'un moteur à courant continu
- Comment programmer l'ESP8266 pour contrôler deux moteurs à courant continu simultanément
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du moteur à courant continu
Brochage du moteur à courant continu
Un moteur à courant continu possède deux fils, le positif étant généralement rouge et le négatif noir.
Comment ça fonctionne
Lors de l'achat d'un moteur à courant continu, il est essentiel d'identifier la tension à laquelle il fonctionne. Par exemple, considérons un moteur à courant continu de 12V.
Lorsque vous alimentez le moteur CC 12V par une source d’alimentation de 12V :
- Connectez le 12V et le GND au fil positif et au fil négatif, respectivement : le moteur à courant continu tourne à vitesse maximale dans le sens des aiguilles d'une montre.
- Connectez le 12V et le GND au fil négatif et au fil positif, respectivement : le moteur à courant continu tourne à vitesse maximale dans le sens contraire des aiguilles d'une montre.
Comme mentionné précédemment, en échangeant le poteau de puissance entre deux fils du moteur à courant continu, le sens de rotation est inversé. C'est une méthode utilisée pour contrôler la direction du moteur à courant continu, non manuellement mais par programmation.
Si la puissance fournie aux moteurs à courant continu est inférieure à 12V, le moteur tournera toujours mais pas à sa vitesse maximale. Cela implique qu'en ajustant la tension de la source d'alimentation, nous pouvons modifier la vitesse du moteur à courant continu. Néanmoins, cette approche n'est pas couramment utilisée en raison de la complexité de contrôle de la tension de la source d'alimentation. Par conséquent, la tension de la source d'alimentation est maintenue constante et la vitesse du moteur à courant continu est régulée par un signal PWM. Plus le cycle de travail du PWM est élevé, plus le moteur à courant continu tourne rapidement.
Comment contrôler un moteur à courant continu en utilisant un ESP8266
Contrôler un moteur à courant continu implique deux composants : la vitesse et la direction. L'ESP8266 peut générer un signal PWM, mais il a une faible tension et un faible courant, donc il ne peut pas être utilisé pour contrôler le moteur à courant continu. Pour combler l'écart entre l'ESP8266 et le moteur à courant continu, un pilote matériel est nécessaire. Ce pilote effectue deux tâches :
- Amplifier le signal PWM de l'ESP8266 en termes de courant et de tension pour le contrôle de la vitesse.
- Recevoir le signal de commande de l'ESP8266 pour inverser la polarité de l'alimentation électrique pour le contrôle de direction.
※ NOTE THAT:
- Ce tutoriel peut être utilisé pour tout moteur à courant continu. Le moteur à courant continu de 12V est juste un exemple.
- Lorsque vous contrôlez un moteur à courant continu de 5V, même si la broche ESP8266 délivre 5V (qui est la même tension que celle du moteur à courant continu), vous devez toujours avoir un driver entre l'ESP8266 et le moteur à courant continu car la broche ESP8266 ne fournit pas assez de courant pour le moteur à courant continu.
Il existe de nombreux types de puces, et des modules tels que le L293D et le L298N peuvent être utilisés comme pilotes de moteurs à courant continu. Dans ce tutoriel, nous utiliserons le pilote L298N.
À propos du pilote L298N
Le pilote L298N peut être utilisé pour gérer des moteurs à courant continu et des moteurs pas à pas. Ce tutoriel vous explique comment l'utiliser pour contrôler un moteur à courant continu.
Brochage du pilote L298N
Le pilote L298N est capable de contrôler simultanément deux moteurs à courant continu de manière indépendante, appelés moteur A et moteur B. Ce pilote possède en tout 13 broches.
Les broches communes pour les deux moteurs :
- Broche VCC : Cette broche fournit l'alimentation électrique du moteur, avec une plage de tension de 5 à 35V.
- Broche GND : C’est une broche de masse commune, qui doit être connectée à 0V (GND).
- Broche 5V : Cette broche alimente le module L298N, et peut être alimentée par 5V provenant d'un ESP8266.
Broches du moteur A (Canal A) :
- Broches ENA : Cette broche peut être utilisée pour contrôler la vitesse du moteur A. En retirant le cavalier et en la connectant à une entrée PWM, nous pouvons ajuster la vitesse du moteur A.
- Broches IN1 et IN2 : Ces broches sont utilisées pour contrôler la direction de rotation du moteur A. Lorsqu'une de ces broches est réglée sur HIGH et l'autre sur LOW, le moteur A tournera. Si les deux broches sont soit HIGH soit LOW, le moteur A ne bougera pas.
- Broches OUT1 et OUT2 : Ces broches sont connectées au moteur A.
Broches du moteur B (Canal B) :
- Ces broches sont utilisées pour alimenter le moteur B.
- Broches ENB : Cette broche peut être connectée à une entrée PWM pour contrôler la vitesse du moteur B. Retirer le cavalier permettra cela.
- Broches IN3 et IN4 : Ces broches sont utilisées pour déterminer le sens de rotation du moteur B. Lorsque l'une d'elles est HIGH et l'autre LOW, le moteur B tournera. Si les deux entrées sont soit HIGH, soit LOW, le moteur B s'arrêtera.
- Broches OUT3 et OUT4 : Ces broches sont connectées au moteur B et lui fournissent de l'énergie.
Le pilote L298N dispose de deux alimentations d'entrée :
- Un pour le moteur à courant continu, avec une plage de tension de 5 à 35V, connecté aux broches VCC et GND.
- Un pour le fonctionnement interne du module L298N, avec une plage de tension de 5 à 7V, connecté aux broches 5V et GND.
Retirez tous les cavaliers du pilote L298N pour des raisons de simplicité. Cela est nécessaire car les cavaliers sont utilisés pour des utilisations avancées ou d'autres fins.
Nous pouvons contrôler deux moteurs à courant continu de manière indépendante et simultanée en utilisant un ESP8266 et un pilote L298N. Pour réguler chaque moteur, nous avons besoin de seulement trois broches de l'ESP8266.
※ NOTE THAT:
Le reste de ce tutoriel se concentrera sur le contrôle d'un moteur à courant continu en utilisant le canal A. Des étapes similaires peuvent être suivies pour contrôler l'autre moteur à courant continu.
Comment contrôler la vitesse d'un moteur à courant continu via un pilote L298N
Il est facile de réguler la vitesse d'un moteur à courant continu en produisant un signal MLI sur la broche ENA du L298N. Cela peut être réalisé en :
- Connexion d'une broche ESP8266 à l'ENA de L298N
- Génération d'un signal PWM sur la broche ENA en utilisant la fonction analogWrite(). Le driver L298N amplifiera le signal PWM vers le moteur à courant continu.
La vitesse peut varier de 0 à 255. Lorsque la vitesse est de 0, le moteur cessera de bouger. À une vitesse de 255, le moteur tournera à sa vitesse maximale.
Comment contrôler la direction d'un moteur à courant continu via le pilote L298N
La rotation d'un moteur peut être ajustée en fournissant un logique HAUT/BAS aux broches IN1 et IN2. Le tableau ci-dessous montre comment contrôler la direction dans les deux canaux.
IN1 pin | IN2 pin | Direction |
---|---|---|
LOW | LOW | Motor A stops |
HIGH | HIGH | Motor A stops |
HIGH | LOW | Motor A spins Clockwise |
LOW | HIGH | Motor A spins Anti-Clockwise |
En conséquence :
- Code ESP8266 pour tourner dans le sens des aiguilles d'une montre.
- Code ESP8266 pour tourner dans le sens antihoraire.
※ NOTE THAT:
La rotation du moteur à courant continu peut être inversée en connectant les broches OUT1 et OUT2 de manière opposée.
Comment arrêter la rotation d'un moteur à courant continu
Il existe deux méthodes pour arrêter un moteur à courant continu :
- Réduisez la vitesse à 0.
- Définit les broches IN1 et IN2 à la même valeur, soit BASSE soit HAUTE.
- Ou
Comment contrôler un moteur à courant continu avec un pilote L298N.
Schéma de câblage
Il est essentiel de retirer les trois cavaliers du module L298N avant de connecter les fils.
This image is created using Fritzing. Click to enlarge image
Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.
Code ESP8266
Le code suivant fait :
- Augmente la vitesse d'un moteur à courant continu
- Modifie la direction
- Diminue la vitesse d'un moteur à courant continu
- Arrête le moteur
Étapes rapides
Pour commencer avec l'ESP8266 sur l'IDE Arduino, suivez ces étapes :
- Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez un ESP8266.
- Connectez les composants comme indiqué sur le schéma.
- Connectez la carte ESP8266 à votre ordinateur via un câble USB.
- Ouvrez Arduino IDE sur votre ordinateur.
- Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
- Retirez les trois cavaliers du module L298N.
- Copiez le code et ouvrez-le dans l'Arduino IDE.
- Cliquez sur le bouton Upload dans l'Arduino IDE pour compiler et téléverser le code vers l'ESP8266.
- Vous devriez observer :
- Le moteur à courant continu accélérera puis tournera à sa vitesse maximale pendant 1 seconde.
- La direction du moteur à courant continu sera changée.
- Le moteur à courant continu tournera à sa vitesse maximale dans la direction opposée pendant 1 seconde.
- Le moteur à courant continu ralentira.
- Le moteur à courant continu s'arrêtera pendant 1 seconde.
- Ce processus se répétera.
※ NOTE THAT:
Ce tutoriel vous explique comment contrôler la vitesse d'un moteur à courant continu par rapport à sa vitesse maximale. Pour contrôler la vitesse absolue (en tours par seconde), nous devrons utiliser un contrôleur PID et un encodeur. La régulation de la vitesse absolue du moteur à courant continu sera abordée dans un tutoriel séparé.
Comment contrôler deux moteurs à courant continu en utilisant un pilote L298N
Bientôt disponible !