Arduino Mega - Moteur DC

Ce guide vous montrera comment utiliser l'Arduino Mega pour contrôler un moteur DC. En termes simples, nous couvrirons :

Arduino Mega DC motor

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Module pilote moteur L298N
1×Moteur DC 5V
1×Adaptateur secteur 5V pour moteur DC 5V
1×Prise d'alimentation DC
1×Fils de connexion
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À 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.
DC Motor Pinout

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.

How to control DC motor

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.
Arduino Mega control DC motor

※ 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

L298N Driver Pinout

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.

Arduino Mega DC Motor L298N Driver Wiring Diagram

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.
analogWrite(ENA_PIN, speed); // Write PWM value to ENA_PIN to control motor speed (0-255)

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.
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Le moteur A tourne dans le sens antihoraire.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ 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.
analogWrite(ENA_PIN, 0);
  • Régler les broches IN1 et IN2 à la même valeur, soit basse soit haute.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • Ou
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

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
/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-dc-motor */ #define ENA_PIN 9 // The Arduino Mega pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Mega pin connected to the IN1 pin L298N #define IN2_PIN 3 // The Arduino Mega pin connected to the IN2 pin L298N void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); } void loop() { digitalWrite(IN1_PIN, HIGH); // control motor A spins clockwise digitalWrite(IN2_PIN, LOW); // control motor A spins clockwise for (int speed = 0; speed <= 255; speed++) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // rotate at maximum speed 1 seconds in in clockwise direction // change direction digitalWrite(IN1_PIN, LOW); // control motor A spins anti-clockwise digitalWrite(IN2_PIN, HIGH); // control motor A spins anti-clockwise delay(1000); // rotate at maximum speed 1 seconds in in anti-clockwise direction for (int speed = 255; speed >= 0; speed--) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // stop motor 1 second }

É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é.

Vidéo

Références de fonctions

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !