About Me

Contrôle du moteur pas à pas avec Arduino




Un moteur pas à pas est un type de moteur à courant continu qui fonctionne par étapes discrètes et est utilisé partout, de la caméra de surveillance aux robots et machines sophistiqués.
Les moteurs pas à pas permettent un contrôle précis et peuvent être différenciés en fonction du couple, des échelons par tour et de la tension d'entrée.
Dans ce qui suit, nous allons contrôler le moteur pas à pas NEMA17 à l'aide du module de pilote pas à pas Arduino Uno et A4988.
 Le moteur pas à pas Nema17 a un couple et une tension de fonctionnement supérieurs à 28-BYJ48. Ici, un potentiomètre sera également attaché pour contrôler la direction du moteur pas à pas.

Liste des composants :
Arduino UNO
Moteur pas à pas NEMA17
Module de pilote pas à pas A4988
Condensateur 47 µf
Potentiomètre

Moteur pas à pas NEMA17

Le fonctionnement de Nema17 est similaire à celui des moteurs pas à pas normaux. Le moteur pas à pas NEMA 17 a une plaque frontale de 1,7 x 1,7 pouce, et il a généralement plus de couple que les variantes plus petites, telles que NEMA 14.
Ce moteur a six fils de connexion et la tension nominale est de 12 volts. Il peut fonctionner à une tension inférieure, mais le couple va chuter. Les moteurs pas à pas ne tournent pas, et le moteur NEMA17 a un angle de pas de 1,8 degrés, signifie qu'il couvre 1,8 degrés à chaque étape.
Le schéma de câblage pour NEMA17 est donné ci-dessous.


Comme vous pouvez le constater, ce moteur a un arrangement unipolaire à six fils. Ces fils sont connectés en deux enroulements divisés. Les fils noir, jaune et vert font partie du premier enroulement où Noir est un taraud central, et les fils jaune et vert se terminent en bobine tandis que Rouge, Blanc et Bleu fait partie d'un second enroulement dans lequel le Blanc est le taraudage central et le rouge et le bleu sont bobinés. Normalement, les fils de prise centrale sont débranchés.

Étapes par révolution pour NEMA17:

Les pas par tour pour un moteur pas à pas particulier sont calculés à l'aide de l'angle de pas de ce moteur pas à pas. Donc, dans le cas, l'angle de pas NEMA 17 est de 1,8 degré.
Steps per Revolution = 360/ step angle
360/1.8 = 200 Steps Per Revolution

Spécifications de NEMA17:

Tension nominale: 12V DC
Angle de pas: 1.8 deg.
Nombre de phases: 4
Longueur du moteur: 1,54 pouce
Câble à 4 fils et 8 pouces
200 pas par tour, 1,8 degrés
Température de fonctionnement: -10 à 40 ° C
Couple de maintien unipolaire: 22,2 oz

Module de pilote pas à pas A4988:

Un module de commande pas à pas contrôle le fonctionnement d'un moteur pas à pas. Les conducteurs pas à pas envoient le courant au moteur pas à pas à travers différentes phases.
Le pilote pas à pas Nema 17 de  A4988 est un module de pilote micropas utilisé pour contrôler les moteurs pas à pas bipolaires. Ce module de pilote possède un traducteur intégré, ce qui signifie que nous pouvons contrôler le moteur pas à pas en utilisant très peu de broches de notre contrôleur.
En utilisant ce module pilote de moteur Nema 17, nous pouvons contrôler le moteur pas à pas en utilisant seulement deux broches, c’est-à-dire STEP et DIRECTION. La broche STEP est utilisée pour contrôler les étapes tandis que la broche DIRECTION est utilisée pour contrôler la direction du moteur. Le module de pilote A4988 fournit cinq résolutions d’étape différentes: étape complète, étape arrière, quart d’étape, huit étapes et seizième étape.

Spécifications de : A4988
Max. Tension de fonctionnement: 35V
Min. Tension de fonctionnement: 8V
Max. Courant par phase: 2A
Résolution en micro-step: pas complet, demi-pas, ¼ pas, 1/8 et 1/16
Protection contre l'inversion de tension: Non
Dimensions: 15,5 × 20,5 mm (0,6 "x 0,8")


Schéma de circuit

Le schéma de circuit pour contrôler le moteur pas à pas Nema 17 avec Arduino est donné dans l'image ci-dessus. Comme le module A4988 possède un traducteur intégré, il ne nous reste plus qu'à connecter les broches Step et Direction à Arduino.
La goupille de pas sert à contrôler les pas tandis que la goupille de direction sert à contrôler la direction. Le moteur pas à pas est alimenté par une source d'alimentation de 12 V et le module A4988 est alimenté via Arduino. Le potentiomètre est utilisé pour contrôler la direction du moteur.
Si vous tournez le potentiomètre dans le sens des aiguilles d'une montre, le moteur pas à pas tourne dans le sens des aiguilles d'une montre et si vous tournez le potentiomètre dans le sens inverse des aiguilles d'une montre, il tourne dans le sens contraire. Un condensateur de 47 µf est utilisé pour protéger la carte des pointes de tension. Les broches MS1, MS2 et MS3 sont déconnectées, ce qui signifie que le pilote fonctionnera en mode pas à pas.



Connexions complètes pour Arduino Uno, Nema 17, Condensateur , Potentiometre   et A4988 données dans le schéma ci-dessous



Explication du code:

Nous expliquons ici le code complet pour comprendre le fonctionnement du projet.
Tout d’abord, ajoutez la bibliothèque de moteurs pas à pas à votre IDE Arduino.
Après cela, définissez le nombre d'étapes pour la NEMA 17. Comme nous l'avons calculé, le nombre de pas,d’étapes par tour pour NEMA 17 est de 200.

#include <Stepper.h>
#define STEPS 200

Ensuite, spécifiez les broches auxquelles le module de pilotage est connecté et définissez le type d'interface du moteur sur Type1 car le moteur est connecté via le module de driver.

Stepper stepper(STEPS, 2, 3);
#define motorInterfaceType 1

Ensuite, réglez la vitesse du moteur pas à pas à l’aide de la fonction stepper.setSpeed. La vitesse maximale du moteur pour NEMA 17 est de 4688 tr / min, mais si nous le faisons plus rapidement que 1000 tr / min, le couple diminue rapidement.

void setup() {
stepper.setSpeed(1000);

Maintenant, dans la boucle principale, nous lirons la valeur du potentiomètre de la broche A0. Dans cette boucle, il y a deux fonctions: potVal et Pval. Si la valeur actuelle, c.-à-d. PotVal, est supérieure à la valeur précédente, c’est-à-dire que Pval se déplacera de dix pas dans le sens des aiguilles d’une montre et si la valeur actuelle est inférieure à la valeur précédente, elle se déplacera de dix tranches dans le sens contraire des aiguilles d’une montre

potVal = map(analogRead(A0),0,1024,0,500);
  if (potVal>Pval)
      stepper.step(10);
  if (potVal<Pval)
      stepper.step(-10);
Pval = potVal;

Connectez maintenant l’Arduino à votre ordinateur portable et chargez le code dans votre carte Arduino UNO à l’aide d’Arduino IDE, sélectionnez la carte et le numéro de port, puis cliquez sur le bouton de téléchargement.
Vous pouvez maintenant contrôler la direction du moteur pas à pas Nema17 à l’aide du potentiomètre.

#include <Stepper.h> 
#define STEPS 200
// Define stepper motor connections and motor interface type. Motor interface type must be set to 1 when using a driver
Stepper stepper(STEPS, 2, 3); // Pin 2 connected to DIRECTION & Pin 3 connected to STEP Pin of Driver
#define motorInterfaceType 1
int Pval = 0;
int potVal = 0;
void setup() {
  // Set the maximum speed in steps per second:
  stepper.setSpeed(1000);
}
void loop() {

  potVal = map(analogRead(A0),0,1024,0,500);
  if (potVal>Pval)
      stepper.step(10);
  if (potVal<Pval)
      stepper.step(-10);
Pval = potVal;

}


Enregistrer un commentaire

0 Commentaires