Arduino Nano - Moteur à courant continu
Ce tutoriel vous explique comment utiliser un Arduino Nano pour contrôler un moteur à courant continu. Plus précisément, nous allons apprendre :
- Fonctionnement du moteur à courant continu
- Comment utiliser un Arduino Nano et un pilote L298N pour contrôler un moteur à courant continu
- Comment programmer l'Arduino Nano pour contrôler la vitesse et la direction d'un moteur à courant continu
- Comment programmer l'Arduino Nano pour contrôler simultanément deux moteurs à courant continu
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
Le moteur à courant continu possède deux fils, le fil positif est généralement rouge et le fil négatif est généralement noir.
Comment ça marche
Lors de l'achat d'un moteur à courant continu, il est important de prendre conscience de la tension à laquelle il fonctionne. Prenons par exemple un moteur à courant continu de 12V.
Lorsque vous alimentez le moteur 12V CC par une source d'alimentation de 12V :
- Connecter 12V et 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.
- Connecter 12V et GND au fil négatif et au fil positif, respectivement : le moteur à courant continu tourne à vitesse maximale dans le sens inverse des aiguilles d'une montre.
Inverser le poteau de puissance entre deux fils du moteur à courant continu inversera sa direction de rotation. Cette technique est utilisée pour contrôler la direction du moteur à courant continu, non manuellement mais par programmation.
Si la tension de l'alimentation d'un moteur à courant continu est inférieure à 12V, le moteur tournera toujours, mais pas à sa vitesse maximale. Par conséquent, en ajustant la tension de la source d'alimentation, nous pouvons contrôler la vitesse du moteur à courant continu. Néanmoins, cette approche n'est généralement pas utilisée en raison de la difficulté à contrôler la tension de la source d'alimentation. En alternative, nous maintenons la tension de la source d'alimentation fixe et contrôlons la vitesse du moteur à courant continu via un signal PWM. Plus le cycle de travail du PWM est élevé, plus le moteur à courant continu tourne rapidement.
Comment contrôler un moteur CC avec un Arduino Nano
La commande d'un moteur à courant continu implique deux éléments : la vitesse et la direction. L'Arduino Nano peut générer un signal PWM, mais ce signal a une faible tension et un faible courant, il ne peut donc pas être utilisé directement pour contrôler le moteur. Nous devons utiliser un pilote matériel entre l'Arduino Nano et le moteur. Le pilote effectue deux tâches :
- Amplification du signal PWM de l'Arduino Nano (en termes de courant et/ou de tension) pour le contrôle de la vitesse
- Réception du signal de contrôle de l'Arduino Nano pour changer la polarité de l'alimentation électrique pour le contrôle de direction.
※ NOTE THAT:
- Ce tutoriel peut être utilisé pour tous les moteurs à courant continu. Nous prenons comme exemple un moteur à courant continu de 12V.
- Lors du contrôle d'un moteur CC de 5V, même si la broche de l'Arduino Nano délivre 5V (qui est la même tension que le moteur CC), un pilote est toujours nécessaire entre l'Arduino Nano et le moteur CC car la broche de l'Arduino Nano ne fournit pas assez de courant pour le moteur CC.
- Si vous utilisez un moteur CC de 5V, vous avez besoin d'un adaptateur d'alimentation de 5V pour le moteur. Si vous utilisez un moteur CC de 12V, vous avez besoin d'un adaptateur d'alimentation de 12V pour le moteur.
Il existe de nombreux puces et modules pouvant fonctionner comme pilotes pour les moteurs à courant continu, tels que le L293D et le L298N. Dans ce guide, nous utiliserons le pilote L298N.
À propos du pilote L298N
Le pilote L298N peut être utilisé pour gérer des moteurs DC et des moteurs pas à pas. Ce tutoriel vous explique comment l'utiliser pour contrôler un moteur DC.
Brochage du pilote L298N
Le pilote L298N est capable de contrôler indépendamment deux moteurs à courant continu en même temps, appelés moteur A et moteur B. Ce pilote possède treize broches.
Les broches communes pour les deux moteurs :
- Broche VCC : Cette broche fournit de l'énergie au moteur, avec une plage de tension de 5 à 35 V.
- Broche GND : Cette broche est une connexion de masse commune qui doit être connectée à 0 V (GND).
- Broche 5V : Cette broche alimente le module L298N et peut être alimentée par une source de 5V provenant d'un Arduino Nano.
Broches du moteur A (canal A) :
- Broches ENA : Ces broches sont utilisées pour réguler la vitesse du moteur A. En retirant le cavalier et en connectant cette broche à une entrée PWM, cela nous permettra de contrôler la vitesse du moteur A.
- Broches IN1 et IN2 : Ces broches sont utilisées pour gérer le sens de rotation du moteur A. Lorsque l'une d'elles est HIGH et l'autre est LOW, le moteur A tournera. Si les deux entrées sont HIGH ou LOW, le moteur A s'arrêtera.
- Broches OUT1 et OUT2 : Ces broches sont connectées au moteur A.
Broches du moteur B (Canal B) :
- Broches ENB : Cette broche peut être utilisée pour contrôler la vitesse du moteur B. En retirant le cavalier et en le connectant à l'entrée PWM, nous pouvons ajuster la vitesse du moteur B.
- Broches IN3 & IN4 : Ces broches sont utilisées pour gérer la direction de rotation du moteur B. Lorsque l'une est HIGH et l'autre est LOW, le moteur B tournera. Si les deux entrées sont soit HIGH soit LOW, le moteur B cessera de bouger.
- Broches OUT3 & OUT4 : Ces broches sont connectées au moteur B.
Le driver L298N dispose de deux alimentations d'entrée :
- Un pour le moteur à courant continu, avec une plage de tension de 5 à 35V (broches VCC et GND).
- Un pour le fonctionnement interne du module L298N, avec une plage de tension de 5 à 7V (broches 5V et GND).
Retirez tous les cavaliers du pilote L298N par simplicité.
Nous pouvons également contrôler deux moteurs à courant continu séparément et simultanément en utilisant un Arduino Nano et un pilote L298N. Pour manipuler chaque moteur, nous avons besoin de seulement trois broches de l'Arduino Nano.
※ 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 doivent ê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 contrôler la vitesse d'un moteur à courant continu en produisant un signal MLI vers la broche ENA de L298N. Pour ce faire :
- Connectez une broche Arduino Nano à l'ENA du L298N
- Générez un signal PWM sur la broche ENA via la fonction analogWrite(). Le pilote L298N amplifie le signal PWM vers le moteur DC.
La vitesse est un nombre variant de 0 à 255. Lorsque la vitesse est de 0, le moteur cessera de bouger. Lorsque la vitesse est de 255, le moteur tournera à son rythme le plus rapide.
Comment contrôler la direction d'un moteur à courant continu via un pilote L298N
La rotation d'un moteur peut être gérée en donnant un niveau 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 Arduino pour faire tourner le moteur A dans le sens des aiguilles d'une montre.
- Code Arduino pour faire tourner le moteur A dans le sens antihoraire.
※ NOTE THAT:
La direction horaire/antihoraire du moteur à courant continu peut être inversée en connectant les broches OUT1 et OUT2 à deux broches du moteur de manière opposée.
Comment arrêter la rotation d'un moteur à courant continu
Deux méthodes pour arrêter un moteur à courant continu :
- Réduisant sa vitesse à zéro
- 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
Retirez les trois cavaliers du module L298N avant de connecter les fils.
This image is created using Fritzing. Click to enlarge image
Code Arduino Nano
Le code suivant effectue les actions suivantes une par une :
- Augmente la vitesse d'un moteur à courant continu
- Change la direction
- Diminue la vitesse d'un moteur à courant continu
- Arrête le moteur à courant continu
Étapes rapides
- Retirez les trois cavaliers du module L298N.
- Copiez le code et ouvrez-le dans l'Arduino IDE.
- Cliquez sur le bouton Upload de l'Arduino IDE pour charger le code sur l'Arduino Nano.
- 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 pendant 1 seconde dans la direction opposée.
- Le moteur à courant continu ralentira.
- Le moteur à courant continu s'arrêtera pendant 1 seconde.
- Ce processus sera répété continuellement.
※ NOTE THAT:
Ce tutoriel vous explique comment ajuster la vitesse d'un moteur à courant continu par rapport à sa vitesse maximale. Pour contrôler la vitesse absolue (en révolutions par seconde), nous devrons utiliser un contrôleur PID et un encodeur. Un autre tutoriel traitera du contrôle de la vitesse absolue du moteur à courant continu.
Comment contrôler deux moteurs à courant continu avec un pilote L298N
Bientôt disponible !