ESP32 - Moteur à courant continu
Ce tutoriel vous explique comment utiliser l'ESP32 pour contrôler un moteur à courant continu à l'aide d'un pilote de moteur L298N. En détail, nous apprendrons à contrôler la vitesse et la direction du moteur à courant continu. Nous apprendrons à contrôler un seul moteur à courant continu, puis deux moteurs à courant continu en utilisant un seul pilote de moteur L298N.
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 comprend deux fils : Négatif (noir) et Positif (rouge).
Fonctionnement du moteur à courant continu
La direction et la vitesse du moteur à courant continu seront déterminées par la manière dont nous lui fournissons de l'énergie. Les images ci-dessous montrent la relation détaillée entre la puissance et la vitesse/direction.
Dans le cas de l'utilisation du PWM, plus le cycle de travail est grand, plus la vitesse de rotation du moteur est élevée.
Comment contrôler la vitesse et la direction d'un moteur CC en utilisant un ESP32
Tout d'abord, le moteur à courant continu fonctionne avec une haute tension qui peut endommager l'ESP32 ⇒ Nous ne pouvons pas connecter directement le moteur à courant continu à l'ESP32. Nous avons besoin d'un pilote matériel entre le moteur à courant continu et l'ESP32. Le pilote prend trois responsabilités :
- Protéger l'ESP32 de la haute tension
- Recevoir le signal de l'ESP32 pour changer le pôle de l'alimentation afin de contrôler la direction du moteur.
- Amplifier le signal PWM de l'ESP32 (courant et tension) pour contrôler la vitesse du moteur
Il existe de nombreux pilotes de moteurs à courant continu. Ce tutoriel utilisera le pilote L298N.
À propos du pilote L298N
Un seul pilote L298N peut contrôler deux moteurs à courant continu ou un moteur pas à pas. Ce tutoriel utilise ce pilote pour contrôler le moteur à courant continu.
Brochage du pilote L298N
L'image ci-dessous montre le brochage du pilote L298N.
L'explication détaillée pour chaque broche est disponible dans ce tutoriel Arduino - moteur DC.
Un seul pilote L298N peut contrôler indépendamment deux moteurs à courant continu :
- Le premier moteur (appelé moteur A) est contrôlé par les broches IN1, IN2, ENA, OUT1, OUT2.
- Le deuxième moteur (appelé moteur B) est contrôlé par les broches IN3, IN4, ENB, OUT3, OUT4.
Comment contrôler la vitesse d'un moteur à courant continu via un pilote L298N
Il est simple de contrôler la vitesse du moteur à courant continu en générant un signal MLI vers la broche ENA/ENB du L298N. Nous pouvons le faire en :
- Connecter la broche de sortie numérique d'un ESP32 à la broche ENA/ENB d'un L298N
- Création d'un signal PWM sur la broche ENA/ENB en utilisant la fonction analogWrite(). Ce signal PWM passe par le pilote L298N et le courant ainsi que la tension sont amplifiés avant d'être transmis au moteur à courant continu.
La vitesse est une valeur comprise entre 0 et 255. Si elle est de 255, le moteur fonctionne à vitesse maximale. Si elle est de 0, le moteur s'arrête.
Comment contrôler la direction d'un moteur à courant continu via un driver L298N
La direction du moteur à courant continu A peut être contrôlée par les broches IN1 et IN2. Le tableau suivant montre la relation entre la direction du moteur et le signal sur les broches IN1 et IN2.
IN1 pin | IN2 pin | Direction |
---|---|---|
HIGH | LOW | DC Motor A rotates in clockwise direction |
LOW | HIGH | DC Motor A rotates in anticlockwise direction |
HIGH | HIGH | DC Motor A stops |
LOW | LOW | DC Motor A stops |
De même, le tableau ci-dessous concerne le moteur à courant continu B.
IN3 pin | IN4 pin | Direction |
---|---|---|
HIGH | LOW | DC Motor B rotates in clockwise direction |
LOW | HIGH | DC Motor B rotates in anticlockwise direction |
HIGH | HIGH | DC Motor B stops |
LOW | LOW | DC Motor B stops |
Apprenons à programmer pour le contrôler. Prenons par exemple le moteur A. Le moteur B est similaire.
- Contrôler la direction du moteur A vers la droite
- Contrôler la direction du moteur A en sens antihoraire
※ NOTE THAT:
La direction du moteur à courant continu est opposée si le câblage entre le moteur à courant continu et le pilote L298N est inversé. Dans ce cas, échangez les broches OUT1 et OUT2.
Comment arrêter un moteur à courant continu
Il existe deux façons d'arrêter un moteur à courant continu.
- Contrôler la vitesse à 0
- Contrôler les broches IN1 IN2 à la même valeur BASSE ou HAUTE
- Or
Comment contrôler un moteur à courant continu en utilisant un pilote L298N.
Schéma de câblage
Il y a trois cavaliers sur le module L298N. Retirez-les tous avant de procéder au câblage.
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
Code ESP32
Voyons le code ci-dessous qui fait la chose suivante, une par une :
- L'ESP32 augmente progressivement la vitesse du moteur à courant continu.
- L'ESP32 inverse la direction du moteur à courant continu.
- L'ESP32 réduit progressivement la vitesse du moteur à courant continu.
- L'ESP32 arrête le moteur à courant continu.
Étapes rapides
- Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
- Retirez les trois cavaliers sur le module L298N.
- Copiez le code ci-dessus et collez-le dans Arduino IDE.
- Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'Arduino IDE.
- Observez le moteur DC, vous verrez :
- Le moteur DC est accéléré et tourne à la vitesse maximale pendant 2 secondes.
- La direction du moteur DC est inversée.
- Le moteur DC tourne dans le sens inverse à la vitesse maximale pendant 2 secondes.
- Le moteur DC est décéléré.
- Le moteur DC s'arrête 2 secondes.
- Le processus ci-dessus est répété indéfiniment.
※ NOTE THAT:
Ce tutoriel vous explique comment contrôler la vitesse relative d'un moteur à courant continu. Pour contrôler la vitesse absolue (tours par seconde), il est nécessaire d'utiliser un régulateur PID et le retour d'information d'un encodeur.
Comment contrôler deux moteurs à courant continu avec un pilote L298N
(bientôt disponible)