Avancer un pas après l'autre : le moteur pas à pas : Différence entre versions

De Wiki L.A.B
Aller à : navigation, rechercher
 
Ligne 8 : Ligne 8 :
 
===== Principe =====
 
===== Principe =====
  
Ce moteur possède quatre fils d’alimentation pour piloter des bobines par paire. Comme un schéma vaut mieux qu’un long discours, voici comment il est constitué :
+
Ce moteur possède quatre fils d’alimentation pour piloter des bobines par paire. Etant donné un schéma vaut mieux qu’un long discours, voici comment il est constitué :
  
 
[[Fichier:Pap principe.png]]
 
[[Fichier:Pap principe.png]]
Ligne 18 : Ligne 18 :
 
Lorsqu’il n’y a aucun courant traversant les bobines, le rotor (où l’axe de sortie est lié) est libre de tourner, rien ne cherche à le retenir  
 
Lorsqu’il n’y a aucun courant traversant les bobines, le rotor (où l’axe de sortie est lié) est libre de tourner, rien ne cherche à le retenir  
 
dans sa course. Maintenant, si nous décidons de faire passer du courant entre les points C et D pour alimenter la bobine de gauche et celle de  
 
dans sa course. Maintenant, si nous décidons de faire passer du courant entre les points C et D pour alimenter la bobine de gauche et celle de  
droite. Un courant va s’établir et deux champs électromagnétiques vont apparaître de part et d’autres du rotor. Que va-t-il alors se passer ?  
+
droite, un courant va s’établir et deux champs électromagnétiques vont apparaître de part et d’autres du rotor. Que va-t-il alors se passer ?  
L’aimant du rotor va tourner sur lui même pour se placer de façon à ce que sont pôle Nord soit en face du pôle Sud du champ magnétique créé dans la  
+
L’aimant du rotor va tourner sur lui même pour se placer de façon à ce que son pôle Nord soit en face du pôle Sud du champ magnétique créé dans la  
première bobine et que son pôle Sud soit en face du pôle Nord créé dans la deuxième bobine
+
première bobine et que son pôle Sud soit en face du pôle Nord créé dans la deuxième bobine.
Si ensuite on alimente non plus les bobines entre C et D mais plutôt celles entre A et B, le rotor va alors tourner pour s’aligner à nouveau vers  
+
Si on alimente non plus les bobines entre C et D mais plutôt entre A et B, le rotor va alors tourner pour s’aligner à nouveau vers  
 
les pôles qui l’intéressent (Nord/Sud, Sud/Nord).
 
les pôles qui l’intéressent (Nord/Sud, Sud/Nord).
Et c’est reparti, on va alors alimenter de nouveau les bobines entre D et C, donc avec un courant de signe opposé à la fois où l’on les a alimenter
+
Ensuite on recommence, on va alors alimenter de nouveau les bobines entre D et C, donc avec un courant de signe opposé à la fois où elles ont été alimentées
 
entre C et D (par exemple C était relié au “+” de l’alimentation tout à l’heure et là on le fait passer au “-”, idem pour D que l’on fait passer du “-” au “+”)  
 
entre C et D (par exemple C était relié au “+” de l’alimentation tout à l’heure et là on le fait passer au “-”, idem pour D que l’on fait passer du “-” au “+”)  
et le moteur va encore faire un quart de tour On peut continuer ainsi de suite pour faire tourner le moteur en faisant attention de ne pas se tromper  
+
et le moteur va encore faire un quart de tour. On peut continuer ainsi de suite pour faire tourner le moteur en faisant attention de ne pas se tromper  
dans les phases d’alimentation. A chaque phase on va donc faire tourner le moteur d’un quart de tour :
+
dans les phases d’alimentation. A chaque phase, on va donc faire tourner le moteur d’un quart de tour :
  
 
[[Fichier:Pap phase.png]]
 
[[Fichier:Pap phase.png]]
Ligne 32 : Ligne 32 :
 
Ce quart de rotation s’appelle un pas. Et comme il faut plusieurs pas pour faire tourner le moteur sur 360°, on l’a donc appelé ainsi, le moteur pas-à-pas.
 
Ce quart de rotation s’appelle un pas. Et comme il faut plusieurs pas pour faire tourner le moteur sur 360°, on l’a donc appelé ainsi, le moteur pas-à-pas.
  
Dans le cas illustré ci-dessus, on dit que le moteur fait 4 pas par tour. Il existe bien des moteurs qui font ce nombre de pas, mais il en existe qui ont un nombre de pas plus conséquent (24, 48, etc.). Leur constitution mécanique est différente, ce qui leur confère ce pouvoir, bien que le fonctionnement reste identique, puisque l’on cherche toujours à attirer un aimant grâce à des champs magnétiques crées par des bobines parcourues par un courant. Pour avoir plus de pas, on multiplie les aimants au centre. Sur l’image ci-dessous, on peut bien voir les bobines (en cuivre à l’extérieur) et tout les aimants au centre (les petites dents).
+
Dans le cas illustré ci-dessus, on dit que le moteur fait 4 pas par tour. Il existe bien des moteurs qui font ce nombre de pas mais ce ne sont pas les plus fréquents. Généralement le nombre de pas par tour est bien plus conséquent (24, 48, 180,...). La constitution mécanique de leur rotor est plus complexe (le rotor comporte autant d'aimants que de pas par tour), mais le principe de fonctionnement reste identique. On cherche toujours à attirer un aimant grâce à des champs magnétiques crées par des bobines parcourues par un courant.
  
 
===== Montage =====
 
===== Montage =====
Le montage du shield revient juste à emboîter le shield dans l'arduino et de câbler les deux moteurs dans les bornier à vis étiqueté A et B.
+
Le montage consiste simplement à emboîter le shield dans l'arduino et à câbler les deux moteurs dans les borniers à vis étiquetés A et B.
  
 
[[Fichier:MotorShield R3 Montage.jpg]]
 
[[Fichier:MotorShield R3 Montage.jpg]]

Version actuelle en date du 4 janvier 2016 à 16:41

Matériel
Principe

Ce moteur possède quatre fils d’alimentation pour piloter des bobines par paire. Etant donné un schéma vaut mieux qu’un long discours, voici comment il est constitué :

Pap principe.png

Vous l’aurez compris, les bobines sont reliées deux à deux en série et sont donc pilotées ensemble. Il n’y a donc finalement que deux enroulements à commander puisque deux bobines montées en série n’en font plus qu’une. Leur placement de part et d’autre de l’aimant permanent du rotor permet de piloter ce dernier.

Lorsqu’il n’y a aucun courant traversant les bobines, le rotor (où l’axe de sortie est lié) est libre de tourner, rien ne cherche à le retenir dans sa course. Maintenant, si nous décidons de faire passer du courant entre les points C et D pour alimenter la bobine de gauche et celle de droite, un courant va s’établir et deux champs électromagnétiques vont apparaître de part et d’autres du rotor. Que va-t-il alors se passer ? L’aimant du rotor va tourner sur lui même pour se placer de façon à ce que son pôle Nord soit en face du pôle Sud du champ magnétique créé dans la première bobine et que son pôle Sud soit en face du pôle Nord créé dans la deuxième bobine. Si on alimente non plus les bobines entre C et D mais plutôt entre A et B, le rotor va alors tourner pour s’aligner à nouveau vers les pôles qui l’intéressent (Nord/Sud, Sud/Nord). Ensuite on recommence, on va alors alimenter de nouveau les bobines entre D et C, donc avec un courant de signe opposé à la fois où elles ont été alimentées entre C et D (par exemple C était relié au “+” de l’alimentation tout à l’heure et là on le fait passer au “-”, idem pour D que l’on fait passer du “-” au “+”) et le moteur va encore faire un quart de tour. On peut continuer ainsi de suite pour faire tourner le moteur en faisant attention de ne pas se tromper dans les phases d’alimentation. A chaque phase, on va donc faire tourner le moteur d’un quart de tour :

Pap phase.png

Ce quart de rotation s’appelle un pas. Et comme il faut plusieurs pas pour faire tourner le moteur sur 360°, on l’a donc appelé ainsi, le moteur pas-à-pas.

Dans le cas illustré ci-dessus, on dit que le moteur fait 4 pas par tour. Il existe bien des moteurs qui font ce nombre de pas mais ce ne sont pas les plus fréquents. Généralement le nombre de pas par tour est bien plus conséquent (24, 48, 180,...). La constitution mécanique de leur rotor est plus complexe (le rotor comporte autant d'aimants que de pas par tour), mais le principe de fonctionnement reste identique. On cherche toujours à attirer un aimant grâce à des champs magnétiques crées par des bobines parcourues par un courant.

Montage

Le montage consiste simplement à emboîter le shield dans l'arduino et à câbler les deux moteurs dans les borniers à vis étiquetés A et B.

MotorShield R3 Montage.jpg

PaP.jpg

Programme

Voici le programme qu'il faut éditer dans l'IDE Arduino, puis compiler et charger dans la carte Arduino.

/* 
 Stepper Motor Control with Arduino Motor Control Shield V3.0.
 */
const int dirA = 12;
const int dirB = 13;

const int motA = 3;
const int motB = 11;

const int brakeA = 9;
const int brakeB = 8;

const int delayLength = 30;

void setup() {
  pinMode(dirA, OUTPUT);
  pinMode(dirB, OUTPUT);
  pinMode(brakeA, OUTPUT);
  pinMode(brakeB, OUTPUT);
  pinMode(motA, OUTPUT);
  pinMode(motB, OUTPUT);
}

void loop() {
  digitalWrite(brakeA, LOW);
  digitalWrite(brakeB, HIGH);
  
  digitalWrite(dirA, HIGH);
  digitalWrite(motA, HIGH);
  
  delay(delayLength);
  
  digitalWrite(brakeA, HIGH);
  digitalWrite(brakeB, LOW);
  
  digitalWrite(dirB, HIGH);
  digitalWrite(motB, HIGH);

  delay(delayLength);
  
  digitalWrite(brakeA, LOW);
  digitalWrite(brakeB, HIGH);
  
  digitalWrite(dirA, LOW);
  digitalWrite(motA, HIGH);
  
  delay(delayLength);
  
  digitalWrite(brakeA, HIGH);
  digitalWrite(brakeB, LOW);
  
  digitalWrite(dirB, LOW);
  digitalWrite(motB, HIGH);
  
  delay(delayLength); 
}


/* 
 Stepper Motor Control with Arduino Motor Control Shield V3.0.

 This program drives a bipolar stepper motor. The motor is controlled
 by Arduino pins 10, 11, 12, 13.

 The motor should do five revolutions into one and five into another direction.

 Using this sketch for longer is not recommended because it will keep the motor under current
 and can cause it to become quite hot.

 */

#include <Stepper.h>

int enA  = 3;  // Enable pin 1 on Motor Control Shield   
int enB  = 11;  // Enable pin 2 on Motor Control Shield   
int dirA = 12;  // Direction pin dirA on Motor Control Shield
int dirB = 13;  // Direction pin dirB on Motor Control Shield


const int stepsPerRevolution = 180;  // Change this to fit the number of steps per revolution
                                     // for your motor

// Initialize the stepper library on pins 12 and 13:
Stepper myStepper(stepsPerRevolution, dirA, dirB);            


void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);

  // Enable power to the motor
  pinMode(enA, OUTPUT);
  digitalWrite (enA, HIGH);

  pinMode(enB, OUTPUT);
  digitalWrite (enB, HIGH);  
}

void loop() {
  // Step five revolutions into one direction:
  myStepper.step(stepsPerRevolution*5);
  delay(2000);

  // Step five revolutions in the other direction:
  myStepper.step(-stepsPerRevolution*5);
  delay(2000); 
}