Contrôler un moteur DC avec Arduino et L298N
Introduction
Piloter un moteur à courant continu (DC) avec un module L298N et une carte Arduino est un projet classique pour les débutants en robotique et en électronique. Ce guide explique comment contrôler la vitesse, le sens de rotation et l’arrêt du moteur, tout en détaillant les réglages spécifiques aux modules L298N.
1. Le module L298N

Le L298N est un circuit intégré monté sur un petit module qui permet de commander deux moteurs indépendamment.
Chaque moteur nécessite trois connexions principales :
- ENA ou ENB : broche d’activation, qui peut être utilisée pour ajuster la vitesse via PWM (modulation de largeur d’impulsion).
- IN1/IN2 pour le moteur A ou IN3/IN4 pour le moteur B : ces broches définissent le sens de rotation du moteur.
2. Les cavaliers sur le module L298N
Sur de nombreux modules L298N, on trouve trois petits cavaliers dont le rôle est important :
- Cavalier ENA (moteur A)
- En place : le moteur est toujours activé à pleine puissance, la vitesse ne peut pas être modulée par Arduino.
- Retiré : la broche ENA peut être reliée à une sortie PWM pour contrôler la vitesse.
- Cavalier ENB (moteur B)
- Même principe que pour ENA mais pour le moteur B.
- Cavalier +5V
- En place : le régulateur 5V intégré alimente la logique du module et peut fournir du 5V à l’Arduino si la tension moteur est suffisante.
- Retiré : un 5V externe doit être fourni pour la logique. Ceci est recommandé si la tension moteur est inférieure à 7V.
⚠️ Important : toujours relier les masses (GND) entre Arduino et alimentation moteur pour un fonctionnement correct.
3. Câblage typique pour un moteur
- La broche ENA du module est connectée à une broche PWM de l’Arduino, par exemple la broche 10.
- IN1 et IN2 sont connectées à deux broches numériques, par exemple 9 et 8.
- Les sorties OUT1 et OUT2 sont reliées aux bornes du moteur.
- L’alimentation moteur (9 à 12V selon le moteur) est branchée sur l’entrée correspondante du module.
- Le cavalier ENA doit être retiré si l’on souhaite contrôler la vitesse via Arduino.
4. Fonctionnement du programme
La classe Motor permet de contrôler un moteur de manière simple :
- forward(vitesse) : le moteur tourne dans le sens horaire avec une vitesse comprise entre 0 et 255.
- backward(vitesse) : le moteur tourne dans le sens antihoraire avec la même plage de vitesse.
- stop() : le moteur s’arrête immédiatement.
Un exemple de fonctionnement : au démarrage, le moteur tourne d’abord en avant à vitesse moyenne pendant quelques secondes, puis en arrière à vitesse maximale, puis s’arrête.
5. Piloter plusieurs moteurs
Le module L298N peut contrôler deux moteurs en parallèle :
- Le moteur A est relié à ENA, IN1 et IN2.
- Le moteur B est relié à ENB, IN3 et IN4.
Ainsi, il est possible de créer des robots mobiles à deux roues ou des systèmes avec plusieurs moteurs.
6. Conseils pratiques
- Utiliser une alimentation séparée pour les moteurs si leur consommation est élevée.
- Retirer les cavaliers ENA et ENB pour permettre le contrôle PWM de la vitesse.
- Vérifier le cavalier +5V selon la tension moteur utilisée.
- Tester d’abord à faible vitesse pour éviter les à-coups.
- Toujours relier les masses (GND) entre Arduino et alimentation moteur.
7. Applications typiques
- Robots mobiles à deux roues.
- Bras robotisés.
- Petits tapis roulants ou convoyeurs automatisés.
- Tout projet nécessitant un contrôle simple d’un moteur DC.
8. Exemple : gestion d’un mini tapis roulant
On trouve facilement sur internet un mini tapis roulant de ce genre

Utilisons un L298N pour contrôler ce tapis-roulant

Schéma
