Utilisation d’un moteur pas-à-pas

Aujourd’hui, suite à de nombreuses questions à propos de l’utilisation des drivers pas-à-pas, nous allons réaliser une mise en pratique d’un driver de Pololu avec un moteur pas à pas.

Materiel

Pour la réalisation nous aurons besoin de :

Soudure des connecteurs sur le driver et réglage du courant:

Il faut dans un premier temps souder les deux connecteurs sur le driver pour l’utiliser avec la plaque de connexion rapide. Soudez les deux connecteurs de telle sorte que le potentiomètre de réglage reste accessible lorsque le driver sera inséré sur la plaque de connexion rapide.

Il est nécessaire de régler le courant en fonction de votre moteur pas-à-pas, ici pour notre moteur il faut régler le courant sur 0,7 A (on règle généralement le courant à 70% du courant de bobine –  ici 1A). Chaque driver possède son propre système de réglage du courant, vous devez vous reporter à la fiche technique pour faire ce réglage. Certains drivers se configurent à l’aide de dip-switches, d’autres avec un potentiomètre (comme ici), etc.

Il faut alimenter le driver à partir de la carte Arduino pour procéder au réglage du courant:
Vcc de l’arduino sur Vdd du driver
Gnd de l’arduino sur le Gnd du driver
voir le brochage du driver ci dessous:

Vous devez utiliser un multimètre pour régler le courant à l’aide du potentiomètre de réglage, la formule de conversion est la suivante:

Vref = 8 . Imax . Rcs avec Rcs = 0,068 ohm (formule disponible dans la fiche technique du driver).
Vref: 0,3808 V

Vous devez mesurer la tension sur le potentiomètre à 0,38 V environ pour obtenir un courant de 0,7 A (la masse du multimètre étant reliée sur le GND de la carte Arduino):

reglage courant

Vous pouvez mettre directement la pointe de touche sur le tournevis pour faciliter le réglage:

Le brochage des différents éléments:

Vous devez réaliser le montage suivant pour tester le fonctionnement du moteur, il s’agit du montage minimal pour faire fonctionner le moteur:

La broche DIR (direction) est raccordée sur l’entrée D4 de la carte Arduino et la broche STEP (cadencement) sur la broche D5.
La broche DIR permet de choisir la direction et le moteur avant d’un ”pas” à chaque impulsion sur la broche STEP.

montage ok debut

Le programme Arduino:


Nous allons réaliser un programme Arduino très simple pour faire tourner le moteur d’un tour dans un sens puis dans l’autre sens.

**************************

int tempo=1; // Cette valeur détermine la vitesse du moteur, 1 = rapide, 100 = lent

void setup() {
pinMode(4, OUTPUT); // On initialise les broches D4 et D5 en sorties
pinMode(5, OUTPUT);
}

void loop() {
delay(1000);

digitalWrite(4, HIGH); // On met la broche DIR à l’état haut
for (int i=0; i <= 200; i++){
digitalWrite(5, LOW);
delay(tempo); // On envoie 200 impulsions pour faire tourner le moteur de 200 pas dans un sens
digitalWrite(5, HIGH); // La valeur de tempo determine le temps entre 2 impulsions en ms
delay(tempo);
}

delay(1000);

digitalWrite(4, LOW); // On met la broche DIR à l’état bas pour changer de sens
for (int i=0; i <= 200; i++){
digitalWrite(5, LOW);
delay(tempo); // On envoie 200 impulsions pour faire tourner le moteur dans l’autre sens
digitalWrite(5, HIGH); // La valeur de tempo determine le temps entre 2 impulsions en ms
delay(tempo);
}

}
*******************************

Vous pouvez vous référer à cet article pour installer et utiliser le logiciel Arduino si nécessaire.

Après avoir téléversé le programme et mis en marche l’alimentation du moteur, il devrait tourner dans un sens sur 1 tour et dans l’autre sens:

Ajout d’un bouton-pousssoir et d’un potentiomètre de réglage:

Il est généralement nécessaire de contrôler le moteur pas-à-pas en vitesse et marche/arrêt selon l’application, l’exemple suivant permet d’ajouter ces deux fonctions.
Nous utiliserons les éléments suivants pour faciliter le raccordement:

Nous allons raccorder le potentiomètre sur l’entrée A0 et le bouton-poussoir sur l’entrée D6.

Vous devez échanger la broche noire avec la broche rouge sur le module bouton-poussoir pour correspondre avec le shield bornier:

Raccordez le potentiomètre et le bouton poussoir:

Vous devez également faire un pont entre le Vcc de gauche et le Vcc de droite pour alimenter la partie droite du Shield:

Vous devez ensuite téléverser le programme Arduino suivant:

****************

int tempo=1;
int tourne=0;
int vitesse=1;

void setup() {
pinMode(6, INPUT);
pinMode(4, OUTPUT); // Broches 4 et 5 en sorties et broche 6 en entrée
pinMode(5, OUTPUT);
digitalWrite(4, HIGH);  // On choisit un sens de rotation
}

void loop() {
int capteur = digitalRead(6); // On lit la valeur du bouton-poussoir
vitesse = analogRead(A0); // On lit la valeur du potentiomètre
tempo = map(vitesse, 0, 1023, 1, 100); // On convertit la valeur du potentiomètre en vitesse

if (capteur == HIGH) {
tourne = !tourne;           // On permute entre marche/arrêt lorsque l’on appuie sur le bouton-poussoir 
delay (500);

}
if (tourne == HIGH) {
digitalWrite(5, LOW);
delay(tempo);                  //On fait tourner le moteur avec la vitesse suivant le potentiomètre
digitalWrite(5, HIGH);
delay(tempo);
}

}
******************

Adaptation à votre projet:

Ce tutoriel est valable avec la plupart des cartes de commande et des moteurs pas-à-pas. Il faut choisir le driver en fonction du moteur, on travaille généralement à 70% du courant.

Exemple d’autres drivers:

Exemple d’autres moteurs:

Le brochage est à adaptater en fonction du moteur et du driver, toutes les informations de raccordement sont disponibles dans les onglets fiches techniques.

Le programme Arduino inclus dans ce tutoriel est très simple et peut facilement être adapté à votre utilisation, des nombreuses librairies plus complexes sont disponibles si nécessaire.

Conclusion:

Nous avons vu comment faire tourner un moteur pas à pas avec les nombreux drivers disponibles. N’hésitez pas à poster vos questions en commentaire et nous faire part de vos remarques. Vous pouvez également nous donner des idées de tutoriaux pour les prochains articles.

Pas de commentaire

Laisser un commentaire