Arduino Nano ESP32 - Moteur à courant continu
Ce tutoriel fournit des instructions sur comment utiliser un Arduino Nano ESP32 pour contrôler un moteur à courant continu avec un pilote de moteur L298N. En détail, nous apprendrons comment contrôler la vitesse et la direction d'un moteur à courant continu. Nous verrons comment 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)
Comment fonctionne un moteur à courant continu
La direction et la vitesse du moteur à courant continu seront déterminées par la manière dont nous l'alimentons. Les images ci-dessous montrent la relation détaillée entre la puissance et la vitesse/direction.
Dans le cas de l'utilisation de la MLI, 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 à courant continu en utilisant Arduino Nano ESP32
Premièrement, le moteur à courant continu fonctionne avec une haute tension qui peut endommager l'Arduino Nano ESP32 ⇒ Nous ne pouvons pas connecter directement le moteur à courant continu à l'Arduino Nano ESP32. Nous avons besoin d'un pilote matériel entre le moteur à courant continu et l'Arduino Nano ESP32. Le pilote assume trois responsabilités :
- Protéger l'Arduino Nano ESP32 de la haute tension
- Recevoir le signal de l'Arduino Nano ESP32 pour changer le pôle de l'alimentation afin de contrôler la direction du moteur.
- Amplifier le signal PWM de l'Arduino Nano 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 schéma de brochage du pilote L298N.
L'explication détaillée pour chaque broche est disponible dans ce tutoriel Arduino - moteur CC.
Un seul pilote L298N peut contrôler deux moteurs à courant continu indépendamment :
- 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 PWM 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 amplifie le courant et la tension avant d'aller 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 pilote 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 est pour 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 dans le sens des aiguilles d'une montre
- 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, inversez les broches OUT1 et OUT2.
Comment arrêter un moteur à courant continu
Il existe deux manières d'arrêter un moteur à courant continu.
- Contrôler la vitesse à 0
- Contrôler les broches IN1 IN2 à la même tension BASSE ou HAUTE.
- Ou
Comment contrôler un moteur à courant continu avec 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
Code Arduino Nano ESP32
Voyons le code ci-dessous qui fait la chose suivante, une par une :
- Arduino Nano ESP32 contrôle progressivement la vitesse du moteur à courant continu.
- Arduino Nano ESP32 inverse la direction du moteur à courant continu.
- Arduino Nano ESP32 contrôle la vitesse du moteur à courant continu en diminution.
- Arduino Nano ESP32 arrête le moteur à courant continu.
Étapes rapides
- Si c'est la première fois que vous utilisez un Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Retirez les trois cavaliers sur le module L298N.
- Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
- Compilez et téléchargez le code sur la carte Arduino Nano ESP32 en cliquant sur le bouton Upload sur Arduino IDE.
- Observez le moteur à courant continu, vous verrez :
- Le moteur à courant continu est accéléré et tourne à vitesse maximale pendant 2 secondes
- La direction du moteur à courant continu est inversée
- Le moteur à courant continu tourne dans le sens inverse à la vitesse maximale pendant 2 secondes
- Le moteur à courant continu est ralenti
- Le moteur à courant continu s'arrête 2 secondes
- Le processus ci-dessus est répété indéfiniment.
※ NOTE THAT:
Ce tutoriel fournit des instructions sur comment contrôler la vitesse du moteur à courant continu de manière relative. 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
(prochainement)