Arduino Mega - Moteur DC
Ce guide vous montrera comment utiliser l'Arduino Mega pour contrôler un moteur DC. En termes simples, nous couvrirons :
- Comment fonctionne un moteur DC
- Comment régler la vitesse et la direction d'un moteur DC
- Comment utiliser un pilote L298N pour contrôler un moteur DC

Matériel requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du moteur DC
Brochage du moteur DC
Un moteur DC utilise deux fils.
- Le fil positif est généralement rouge.
- Le fil négatif est généralement noir.

Comment ça fonctionne
Quand vous achetez un moteur DC, vous devez connaître la tension dont il a besoin. Par exemple, un moteur DC qui fonctionne avec 12 volts. Quand vous connectez un moteur DC 12V à une source d'alimentation 12 volts :
- Connectez 12V au fil rouge et connectez le fil noir à la masse : le moteur DC tourne dans le sens horaire à pleine vitesse.
- Connectez 12V au fil noir et connectez le fil rouge à la masse : le moteur DC tourne dans le sens antihoraire à pleine vitesse.
Si vous inversez les deux fils d'un moteur DC, le moteur tournera dans la direction opposée. Cette astuce simple vous aide à contrôler dans quelle direction le moteur tourne. Cela se fait par programmation, pas à la main.
Si vous donnez moins de 12 volts à un moteur DC, il commence à tourner mais pas à pleine vitesse. Cela montre que changer la tension change la vitesse. Mais changer la tension directement est difficile à faire en réalité. Il y a donc une façon plus facile de contrôler la vitesse du moteur. Gardez la tension d'alimentation identique et utilisez un signal PWM pour contrôler la vitesse. PWM signifie Modulation de Largeur d'Impulsion. Il active et désactive la tension rapidement. Quand le temps d'activation (cycle de service) est plus élevé, le moteur tourne plus vite ; quand il est plus bas, il ralentit.

Comment contrôler un moteur DC avec l'Arduino Mega
Pour faire fonctionner un moteur DC, vous devez contrôler à quelle vitesse il tourne et dans quelle direction il tourne. L'Arduino Mega peut générer un signal PWM, mais ce signal a une tension et un courant trop faibles pour faire fonctionner le moteur seul. Vous avez donc besoin d'un pilote matériel pour connecter l'Arduino Mega au moteur DC. Ce pilote fait deux tâches principales :
- Renforcer le signal PWM de l'Arduino Mega (tension plus élevée et plus de courant) pour contrôler la vitesse.
- Recevoir un signal de contrôle de l'Arduino Mega pour inverser la polarité de l'alimentation pour contrôler la direction.

※ Note:
- Ce guide peut être utilisé pour n'importe quel moteur DC. Nous utilisons un moteur 12V comme exemple.
- Si vous utilisez un moteur DC 5V, même si la broche Arduino Mega donne 5V (la même tension que le moteur), vous avez toujours besoin d'un pilote entre l'Arduino Mega et le moteur. C'est parce que la broche Arduino Mega ne peut pas fournir assez de courant pour faire fonctionner le moteur.
Dans ce guide, nous utiliserons le pilote L298N pour contrôler les moteurs DC.
À propos du pilote L298N
Dans ce guide, vous apprendrez comment utiliser le pilote moteur L298N pour faire fonctionner un moteur DC.
Brochage du pilote L298N

Le pilote L298N peut contrôler deux moteurs DC en même temps, appelés moteur A et moteur B. Il a 13 broches.
Les broches communes pour les deux moteurs :
- Broche VCC : Alimente le moteur. Plage de tension : 5 à 35 volts.
- Broche GND : Masse commune. Connecter à la masse (0V).
- Broche 5V : Alimente le module L298N. Il peut utiliser 5V d'un Arduino Mega.
Broches du moteur A (Canal A) :
- Broches ENA : Elles contrôlent la vitesse du moteur A. Pour ajuster la vitesse, retirez le cavalier et connectez la broche à un signal PWM.
- Broches IN1 & IN2 : Elles décident dans quelle direction le moteur A bouge. Si une broche est activée et l'autre désactivée, le moteur A tourne. Si les deux broches sont activées ou les deux désactivées, le moteur A s'arrête.
- Broches OUT1 & OUT2 : Ces broches vont au moteur A.
Broches du moteur B (Canal B) :
- Broches ENB : Elles définissent la vitesse du moteur B. Si vous retirez le cavalier et connectez ces broches à un signal PWM, vous pouvez changer la vitesse du moteur B.
- Broches IN3 & IN4 : Elles décident dans quelle direction le moteur B tourne. Si IN3 est activée et IN4 désactivée, le moteur B tourne dans une direction. Si IN3 est désactivée et IN4 activée, il tourne dans l'autre direction. Si les deux sont activées ou les deux désactivées, le moteur B s'arrête.
- Broches OUT3 & OUT4 : Elles se connectent au moteur B.
Le pilote L298N que nous avons mentionné plus tôt utilise deux types d'entrée d'alimentation :
- Une pour le moteur DC (broches VCC et GND) : 5 à 35 volts.
- Une pour alimenter le module L298N lui-même (broches 5V et GND) : 5 à 7 volts.
Le pilote L298N a trois petits cavaliers pour des configurations plus avancées. Pour garder les choses simples, retirez tous les cavaliers du pilote L298N.
Nous pouvons contrôler deux moteurs DC en même temps avec un Arduino Mega et un pilote moteur L298N. Pour contrôler chaque moteur, nous utilisons trois broches de l'Arduino Mega.
※ Note:
Ce guide vous montre comment contrôler un moteur DC avec le canal A. Les mêmes étapes peuvent être utilisées pour contrôler un autre moteur DC.
Schéma de câblage
Retirez les trois cavaliers du module L298N avant de commencer le câblage.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Comment contrôler la vitesse du moteur DC via le pilote L298N
Vous pouvez facilement changer la vitesse du moteur DC en envoyant un signal PWM à la broche ENA du L298N. Voici comment procéder :
- Connectez une broche de l'Arduino Mega à la broche ENA du module L298N.
- Utilisez la fonction analogWrite() pour envoyer un signal PWM à la broche ENA. Le pilote L298N utilise ce signal PWM pour alimenter le moteur DC.
La vitesse peut être n'importe quel nombre de 0 à 255. Si la vitesse est 0, le moteur s'arrête. Si la vitesse est 255, le moteur fonctionne aussi vite qu'il peut.
Comment contrôler la direction du moteur DC via le pilote L298N
Pour changer la direction dans laquelle le moteur tourne, réglez IN1 et IN2 sur HIGH ou LOW. Le tableau ci-dessous montre comment contrôler la direction pour les deux canaux.
| Broche IN1 | Broche IN2 | Direction |
|---|---|---|
| LOW | LOW | Le moteur A s'arrête |
| HIGH | HIGH | Le moteur A s'arrête |
| HIGH | LOW | Le moteur A tourne dans le sens horaire |
| LOW | HIGH | Le moteur A tourne dans le sens antihoraire |
- Le moteur A tourne dans le sens horaire.
- Le moteur A tourne dans le sens antihoraire.
※ Note:
Si vous connectez OUT1 et OUT2 au moteur dans le mauvais sens, le moteur tournera dans l'autre direction. Pour le corriger, échangez simplement OUT1 et OUT2, ou changez les signaux sur IN1 et IN2 dans votre code.
Comment arrêter la rotation du moteur DC
Il y a deux façons d'arrêter un moteur DC.
- Régler la vitesse à zéro.
- Régler les broches IN1 et IN2 à la même valeur, soit basse soit haute.
- Ou
Comment contrôler un moteur DC en utilisant le pilote L298N.
Code Arduino Mega
Le code ci-dessous fait ces choses :
- Faire tourner le moteur DC plus vite
- Changer de direction
- Faire tourner le moteur DC plus lentement
- Arrêter le moteur
Étapes rapides
Suivez ces étapes une par une.
- Câblez les composants selon le diagramme.
- Connectez la carte Arduino Mega à votre ordinateur avec un câble USB.
- Ouvrez l'IDE Arduino sur votre ordinateur.
- Choisissez la bonne carte (Arduino Mega) et le port COM.
- Retirez les trois cavaliers du module L298N.
- Collez le code dans l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino Mega.
- Observations :
- Le moteur DC accélère, puis fonctionne à pleine vitesse pendant 1 seconde.
- La direction du moteur change.
- Le moteur fonctionne à pleine vitesse pendant 1 seconde dans la direction opposée.
- Le moteur ralentit.
- Le moteur s'arrête pendant 1 seconde.
- Cette séquence se répète.
※ Note:
Dans ce guide, nous apprendrons comment changer la vitesse d'un moteur DC par rapport à sa vitesse maximale. Pour définir la vitesse exacte en rotations par seconde, vous aurez besoin d'un contrôleur PID et d'un encodeur. Nous couvrirons comment contrôler la vitesse précise du moteur DC dans un guide séparé.