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.
Pour la réalisation nous aurons besoin de :
Matériel nécessaire :
|
Soudure des connecteurs 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.
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.
Programmation 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 :
- un module bouton-poussoir
- un module potentiomètre
Nous allons raccorder le potentiomètre sur l’entrée A0 et le bouton-poussoir sur l’entrée D6.
1] Vous devez échanger la broche noire avec la broche rouge sur le module bouton-poussoir pour correspondre avec le Shield bornier. | ||
2] Raccordez le potentiomètre et le bouton poussoir. | ||
3] Faîtes 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 :
- driver 1182 jusqu’à 1A
- driver DRI0043 jusqu’à 3,5A
Exemple d’autres moteurs :
- moteur S20STH30-0604A – 0,6 A – 180 g.cm – taille réduite
- moteur 35STH36-1004B – 1 A – 1,5 kg.cm – Nema 14
- moteur 23HS30-2804S – 2,8 A – 18,9 kg.cm – Nema 23
Le brochage est à adapter 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.
Commentaires d'article
Laissez un commentaire