Arduino - Moteur pas à pas

Un moteur pas à pas ou un moteur pas à pas est un moteur synchrone sans balais, qui divise une rotation complète en un certain nombre d'étapes. Contrairement à un moteur à courant continu sans balais, qui tourne en continu lorsqu'une tension continue fixe lui est appliquée, un moteur pas à pas tourne selon des angles de pas discrets.

Les moteurs pas à pas sont donc fabriqués avec des pas par tour de 12, 24, 72, 144, 180 et 200, ce qui donne des angles de pas de 30, 15, 5, 2,5, 2 et 1,8 degrés par pas. Le moteur pas à pas peut être contrôlé avec ou sans rétroaction.

Imaginez un moteur sur un avion RC. Le moteur tourne très vite dans un sens ou dans un autre. Vous pouvez faire varier la vitesse avec la quantité de puissance donnée au moteur, mais vous ne pouvez pas dire à l'hélice de s'arrêter à une position spécifique.

Imaginez maintenant une imprimante. Il y a beaucoup de pièces mobiles à l'intérieur d'une imprimante, y compris des moteurs. L'un de ces moteurs agit en tant qu'alimentation du papier, des rouleaux de rotation qui déplacent le morceau de papier au fur et à mesure que l'encre est imprimée dessus. Ce moteur doit être capable de déplacer le papier sur une distance exacte pour pouvoir imprimer la ligne de texte suivante ou la ligne suivante d'une image.

Il y a un autre moteur attaché à une tige filetée qui déplace la tête d'impression d'avant en arrière. Encore une fois, cette tige filetée doit être déplacée d'une quantité exacte pour imprimer une lettre après l'autre. C'est là que les moteurs pas à pas sont utiles.

Comment fonctionne un moteur pas à pas?

Un moteur à courant continu régulier tourne dans la seule direction, tandis qu'un moteur pas à pas peut tourner par incréments précis.

Les moteurs pas à pas peuvent tourner une quantité exacte de degrés (ou pas) comme vous le souhaitez. Cela vous donne un contrôle total sur le moteur, vous permettant de le déplacer vers un emplacement exact et de maintenir cette position. Pour ce faire, il alimente les bobines à l'intérieur du moteur pendant de très courtes périodes. L'inconvénient est que vous devez alimenter le moteur tout le temps pour le maintenir dans la position que vous désirez.

Tout ce que vous devez savoir pour l'instant est que, pour déplacer un moteur pas à pas, vous lui dites de faire un certain nombre de pas dans un sens ou dans l'autre, et lui indiquez la vitesse à laquelle avancer dans cette direction. Il existe de nombreuses variétés de moteurs pas à pas. Les méthodes décrites ici peuvent être utilisées pour déduire comment utiliser d'autres moteurs et pilotes qui ne sont pas mentionnés dans ce didacticiel. Cependant, il est toujours recommandé de consulter les fiches techniques et guides des moteurs et drivers spécifiques aux modèles dont vous disposez.

Composants requis

Vous aurez besoin des composants suivants -

  • 1 × carte Arduino UNO
  • 1 × petit moteur pas à pas bipolaire comme indiqué dans l'image ci-dessous
  • 1 × LM298 de conduite IC

Procédure

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

Esquisser

Ouvrez le logiciel Arduino IDE sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez un nouveau fichier d'esquisse en cliquant sur Nouveau.

Code Arduino

/* Stepper Motor Control */

#include <Stepper.h>
const int stepsPerRevolution = 90;
// change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
   // set the speed at 60 rpm:
   myStepper.setSpeed(5);
   // initialize the serial port:
   Serial.begin(9600);
}

void loop() {
   // step one revolution in one direction:
   Serial.println("clockwise");
   myStepper.step(stepsPerRevolution);
   delay(500);
   // step one revolution in the other direction:
   Serial.println("counterclockwise");
   myStepper.step(-stepsPerRevolution);
   delay(500);
}

Code à noter

Ce programme pilote un moteur pas à pas unipolaire ou bipolaire. Le moteur est connecté aux broches numériques 8 à 11 d'Arduino.

Résultat

Le moteur effectuera un tour dans un sens, puis un tour dans l'autre sens.