Arduino - Moteur CC

Dans ce chapitre, nous allons interfacer différents types de moteurs avec la carte Arduino (UNO) et vous montrer comment connecter le moteur et le piloter depuis votre carte.

Il existe trois types de moteurs différents -

  • docteur moteur
  • Servomoteur
  • Moteur pas à pas

Un moteur à courant continu (moteur à courant continu) est le type de moteur le plus courant. Les moteurs à courant continu n'ont normalement que deux fils, un positif et un négatif. Si vous connectez ces deux fils directement à une batterie, le moteur tournera. Si vous changez les fils, le moteur tournera dans le sens opposé.

Warning- Ne conduisez pas le moteur directement à partir des broches de la carte Arduino. Cela pourrait endommager la carte. Utilisez un circuit pilote ou un circuit intégré.

Nous allons diviser ce chapitre en trois parties -

  • Fais juste tourner ton moteur
  • Contrôle de la vitesse du moteur
  • Contrôler la direction de la rotation du moteur à courant continu

Composants requis

Vous aurez besoin des composants suivants -

  • 1x carte Arduino UNO
  • 1x transistor PN2222
  • 1x petit moteur à courant continu 6 V
  • 1x diode 1N4001
  • 1x résistance 270 Ω

Procédure

Suivez le schéma de circuit et effectuez les connexions comme indiqué dans l'image ci-dessous.

Précautions

Prenez les précautions suivantes lors des connexions.

  • Tout d'abord, assurez-vous que le transistor est connecté de la bonne manière. Le côté plat du transistor doit faire face à la carte Arduino comme indiqué dans l'arrangement.

  • Deuxièmement, l'extrémité striée de la diode doit être vers la ligne d'alimentation + 5V selon la disposition indiquée sur l'image.

Contrôle de la rotation du code Arduino

int motorPin = 3;

void setup() {

}

void loop() {
   digitalWrite(motorPin, HIGH);
}

Code à noter

Le transistor agit comme un interrupteur, contrôlant la puissance du moteur. La broche Arduino 3 est utilisée pour allumer et éteindre le transistor et porte le nom de `` motorPin '' dans le croquis.

Résultat

Le moteur tournera à pleine vitesse lorsque la broche Arduino numéro 3 devient élevée.

Contrôle de la vitesse du moteur

Voici le diagramme schématique d'un moteur à courant continu, connecté à la carte Arduino.

Code Arduino

int motorPin = 9;

void setup() {
   pinMode(motorPin, OUTPUT);
   Serial.begin(9600);
   while (! Serial);
   Serial.println("Speed 0 to 255");
}

void loop() {
   if (Serial.available()) {
      int speed = Serial.parseInt();
      if (speed >= 0 && speed <= 255) {
         analogWrite(motorPin, speed);
      }
   }
}

Code à noter

Le transistor agit comme un interrupteur, contrôlant la puissance du moteur. La broche Arduino 3 est utilisée pour allumer et éteindre le transistor et porte le nom de `` motorPin '' dans le croquis.

Lorsque le programme démarre, il vous invite à donner les valeurs pour contrôler la vitesse du moteur. Vous devez entrer une valeur entre 0 et 255 dans Serial Monitor.

Dans la fonction 'loop', la commande 'Serial.parseInt' est utilisée pour lire le nombre saisi sous forme de texte dans Serial Monitor et le convertir en 'int'. Vous pouvez saisir n'importe quel nombre ici. L'instruction 'if' de la ligne suivante effectue simplement une écriture analogique avec ce nombre, si le nombre est compris entre 0 et 255.

Résultat

Le moteur à courant continu tournera à des vitesses différentes selon la valeur (0 à 250) reçue via le port série.

Contrôle de la direction de rotation

Pour contrôler la direction de la rotation du moteur à courant continu, sans interchanger les fils, vous pouvez utiliser un circuit appelé un H-Bridge. Un pont en H est un circuit électronique qui peut entraîner le moteur dans les deux sens. Les ponts en H sont utilisés dans de nombreuses applications différentes. L'une des applications les plus courantes consiste à contrôler les moteurs des robots. On l'appelle un pont en H car il utilise quatre transistors connectés de telle manière que le diagramme schématique ressemble à un "H."

Nous utiliserons ici le circuit intégré L298 H-Bridge. Le L298 peut contrôler la vitesse et la direction des moteurs à courant continu et des moteurs pas à pas, et peut contrôler deux moteurs simultanément. Son courant nominal est de 2A pour chaque moteur. À ces courants, cependant, vous devrez utiliser des dissipateurs de chaleur.

Composants requis

Vous aurez besoin des composants suivants -

  • 1 × L298 pont IC
  • 1 × moteur à courant continu
  • 1 × Arduino UNO
  • 1 × planche à pain
  • 10 × fils de cavalier

Procédure

Voici le diagramme schématique de l'interface du moteur CC à la carte Arduino Uno.

Le schéma ci-dessus montre comment connecter le L298 IC pour contrôler deux moteurs. Il y a trois broches d'entrée pour chaque moteur, Input1 (IN1), Input2 (IN2) et Enable1 (EN1) pour Motor1 et Input3, Input4 et Enable2 pour Motor2.

Étant donné que nous ne contrôlerons qu'un seul moteur dans cet exemple, nous connecterons l'Arduino à IN1 (broche 5), IN2 (broche 7) et Enable1 (broche 6) du L298 IC. Les broches 5 et 7 sont numériques, c'est-à-dire des entrées ON ou OFF, tandis que la broche 6 a besoin d'un signal modulé en largeur d'impulsion (PWM) pour contrôler la vitesse du moteur.

Le tableau suivant montre dans quelle direction le moteur tournera en fonction des valeurs numériques de IN1 et IN2.

EN 1 EN 2 Comportement moteur
FREIN
1 VERS L'AVANT
1 ARRIÈRE
1 1 FREIN

La broche IN1 de l'IC L298 est connectée à la broche 8 d'Arduino tandis que IN2 est connectée à la broche 9. Ces deux broches numériques d'Arduino contrôlent la direction du moteur. La broche EN A de IC est connectée à la broche PWM 2 d'Arduino. Cela contrôlera la vitesse du moteur.

Pour définir les valeurs des broches Arduino 8 et 9, nous avons utilisé la fonction digitalWrite (), et pour définir la valeur de la broche 2, nous devons utiliser la fonction analogWrite ().

Étapes de connexion

  • Connectez respectivement 5V et la terre de l'IC à 5V et à la terre d'Arduino.
  • Connectez le moteur aux broches 2 et 3 du CI.
  • Connectez IN1 de l'IC à la broche 8 d'Arduino.
  • Connectez IN2 de l'IC à la broche 9 d'Arduino.
  • Connectez EN1 de IC à la broche 2 d'Arduino.
  • Connectez la broche SENS A du circuit intégré à la terre.
  • Connectez Arduino à l'aide du câble USB Arduino et téléchargez le programme sur Arduino à l'aide du logiciel Arduino IDE.
  • Alimentez la carte Arduino à l'aide d'une alimentation, d'une batterie ou d'un câble USB.

Code Arduino

const int pwm = 2 ; //initializing pin 2 as pwm
const int in_1 = 8 ;
const int in_2 = 9 ;
//For providing logic to L298 IC to choose the direction of the DC motor

void setup() {
   pinMode(pwm,OUTPUT) ; //we have to set PWM pin as output
   pinMode(in_1,OUTPUT) ; //Logic pins are also set as output
   pinMode(in_2,OUTPUT) ;
}

void loop() {
   //For Clock wise motion , in_1 = High , in_2 = Low
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,LOW) ;
   analogWrite(pwm,255) ;
   /* setting pwm of the motor to 255 we can change the speed of rotation
   by changing pwm input but we are only using arduino so we are using highest
   value to driver the motor */
   //Clockwise for 3 secs
   delay(3000) ;
   //For brake
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,HIGH) ;
   delay(1000) ;
   //For Anti Clock-wise motion - IN_1 = LOW , IN_2 = HIGH
   digitalWrite(in_1,LOW) ;
   digitalWrite(in_2,HIGH) ;
   delay(3000) ;
   //For brake
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,HIGH) ;
   delay(1000) ;
}

Résultat

Le moteur fonctionnera d'abord dans le sens horaire (CW) pendant 3 secondes, puis dans le sens antihoraire (CCW) pendant 3 secondes.