Arduino - Moteur à courant continu
Dans ce tutoriel, nous allons apprendre :
- Comment fonctionne un moteur à courant continu
- Comment contrôler la vitesse et la direction d'un moteur à courant continu.
- Comment contrôler un moteur à courant continu avec un pilote L298N.
- Comment contrôler deux moteurs à courant continu avec un pilote 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
Le moteur à courant continu possède deux fils :
- Fil positif : généralement rouge
- Fil négatif : généralement noir
Comment ça marche
Lorsque vous achetez un moteur à courant continu, vous devez savoir sous quelle tension fonctionne ce moteur à courant continu. Prenons l'exemple d'un moteur à courant continu de 12V.
Lorsque vous alimentez le moteur 12V DC par une source d'alimentation de 12V :
- 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.
- 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.
Comme décrit ci-dessus, lorsque le poteau électrique est échangé entre deux fils du moteur à courant continu, la direction de rotation est inversée. Cette méthode est utilisée pour contrôler la direction du moteur à courant continu. Bien sûr, non pas en changeant manuellement mais par programmation.
Si nous fournissons une puissance inférieure à 12V aux moteurs à courant continu, le moteur tourne toujours mais pas à la vitesse maximale. Cela signifie que si nous changeons la tension de l'alimentation, nous pouvons changer la vitesse du moteur à courant continu. Cependant, cette méthode n'est pas utilisée en pratique à cause de la difficulté à contrôler la tension de la source d'alimentation. Au lieu de cela, nous fixons la tension de la source d'alimentation et contrôlons la vitesse du moteur à courant continu via un signal PWM. Plus le cycle de travail du PWM est important, plus la vitesse du moteur à courant continu est élevée.
Comment contrôler un moteur CC avec Arduino
Contrôler un moteur à courant continu comprend deux facteurs : la vitesse et la direction. Arduino peut générer le signal PWM. Cependant, ce signal PWM a une faible tension et un faible courant, nous ne pouvons pas l'utiliser pour contrôler le moteur à courant continu. Nous devons utiliser un pilote matériel entre l'Arduino et le moteur à courant continu. Le pilote effectue deux travaux :
- Amplifier le signal PWM de l'Arduino (courant et tension) → pour le contrôle de la vitesse.
- Recevoir le signal de commande de l'Arduino pour inverser le pôle de l'alimentation électrique → pour le contrôle de la direction.
※ NOTE THAT:
- Ce tutoriel peut être appliqué à tous les moteurs à courant continu. Le moteur à courant continu de 12V est juste un exemple.
- Lorsque vous contrôlez un moteur à courant continu de 5V, bien que la broche Arduino délivre 5V (la même tension que le moteur à courant continu), il vous faut toujours un pilote entre l'Arduino et le moteur à courant continu car la broche Arduino ne fournit pas assez de courant pour le moteur à courant continu.
Il existe de nombreux types de puces et de modules (par exemple, L293D, L298N) qui 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 contrôler un moteur à courant continu et un moteur pas à pas. Dans ce tutoriel, nous apprenons à l'utiliser pour contrôler le moteur à courant continu.
Brochage du pilote L298N
Le pilote L298N peut contrôler deux moteurs à courant continu indépendamment en même temps, nommés moteur A et moteur B. Le pilote L298N dispose de 13 broches :
Les broches communes pour les deux moteurs :
- Broche VCC : fournit l'alimentation pour le moteur. Elle peut être comprise entre 5 et 35V.
- Broche GND : est une broche de masse commune, doit être connectée à GND (0V).
- Broche 5V : fournit l'alimentation pour le module L298N. Elle peut être alimentée par 5V depuis un Arduino.
Broches du moteur A (Canal A) :
- Broches ENA : sont utilisées pour contrôler la vitesse du moteur A. Retirer le cavalier et connecter cette broche à une entrée PWM nous permettra de contrôler la vitesse du moteur A.
- Broches IN1 et IN2 : sont utilisées pour contrôler le sens de rotation du moteur A. Lorsque l'une d'elles est HIGH et l'autre LOW, le moteur A tournera. Si les deux entrées sont soit HIGH soit LOW, le moteur A s'arrêtera.
- Broches OUT1 et OUT2 : sont connectées au moteur A.
Broches du moteur B (canal B) :
- Broches ENB : sont utilisées pour contrôler la vitesse du moteur B. En enlevant le cavalier et en connectant cette broche à une entrée PWM, nous pouvons contrôler la vitesse du moteur B.
- Broches IN3 & IN4 : sont utilisées pour contrôler le sens de rotation du moteur B. Lorsque l'une d'elles est HIGH et l'autre est LOW, le moteur B tournera. Si les deux entrées sont soit HIGH, soit LOW, le moteur B s'arrêtera.
- Broches OUT3 & OUT4 : sont connectées au moteur B.
Comme décrit ci-dessus, le pilote L298N dispose de deux alimentations d'entrée :
- Un pour le moteur à courant continu (broches VCC et GND) : de 5 à 35V.
- Un pour le fonctionnement interne du module L298N (broches 5V et GND) : de 5 à 7V.
Le pilote L298N dispose également de trois cavaliers pour des utilisations avancées ou d'autres fins. Par souci de simplicité, veuillez retirer tous les cavaliers du pilote L298N.
Nous pouvons contrôler deux moteurs à courant continu indépendamment en même temps en utilisant un Arduino et un pilote L298N. Pour contrôler chaque moteur, nous avons besoin de seulement trois broches de l'Arduino.
※ NOTE THAT:
Le reste de ce tutoriel permet de contrôler un moteur à courant continu en utilisant le canal A. Contrôler l'autre moteur à courant continu est similaire.
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 de L298N. Nous pouvons faire cela en :
- Connectez une broche Arduino à ENA de L298N
- Générez un signal PWM vers la broche ENA en utilisant la fonction analogWrite(). Le pilote L298N amplifie le signal PWM au moteur DC.
La vitesse est une valeur comprise entre 0 et 255. Si la vitesse est 0, le moteur s'arrête. Si la vitesse est 255, le moteur tourne à vitesse maximale.
Comment contrôler la direction d'un moteur à courant continu via le pilote L298N
La direction de rotation d'un moteur peut être contrôlée en appliquant un niveau logique HAUT/BAS aux broches IN1 et IN2. Le tableau ci-dessous illustre 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 |
- Le moteur de commande A tourne dans le sens des aiguilles d'une montre.
- Le moteur de contrôle A tourne dans le sens antihoraire.
※ NOTE THAT:
La direction de rotation est inversée si la broche OUT1 & OUT2 est connectée de manière inverse aux deux broches du moteur à courant continu. Si c'est le cas, il suffit d'intervertir les broches OUT1 & OUT2 ou de modifier le signal de commande sur les broches IN1 et IN2 dans le code.
Comment arrêter la rotation d'un moteur à courant continu
Il existe deux manières d'arrêter un moteur à courant continu.
- Contrôle la vitesse à 0
- Contrôle les broches IN1 IN2 à la même valeur (BASSE ou HAUTE)
*.Ou
Comment contrôler un moteur à courant continu en utilisant un pilote L298N.
Schéma de câblage
Veuillez retirer les trois cavaliers du module L298N avant de procéder au câblage.
This image is created using Fritzing. Click to enlarge image
Code Arduino
Le code ci-dessous fait :
- Accélérer le moteur à courant continu
- Changer la direction
- Ralentir le moteur à courant continu
- Arrêter le moteur
Étapes rapides
- Retirez les trois cavaliers sur le module L298N.
- Copiez le code ci-dessus et ouvrez-le avec l'Arduino IDE.
- Cliquez sur le bouton Upload dans l'Arduino IDE pour charger le code sur Arduino.
- Vous verrez :
- Le moteur DC accélère puis tourne à la vitesse maximale pendant 1 seconde
- La direction du moteur DC est changée
- Le moteur DC tourne à la vitesse maximale pendant 1 seconde en sens inverse
- Le moteur DC ralentit
- Le moteur DC s'arrête 1 seconde
- Le processus ci-dessus est répété.
※ NOTE THAT:
Dans ce tutoriel, nous apprenons à contrôler la vitesse du moteur à courant continu qui est relative à la vitesse maximale. Pour contrôler la vitesse absolue (tour par seconde), nous devons utiliser un régulateur PID et un encodeur. La maîtrise de la vitesse absolue du moteur à courant continu sera présentée dans un autre tutoriel.
Comment contrôler deux moteurs à courant continu avec un pilote L298N
(bientôt disponible)