Quels sont les moteurs pas à pas?
Les moteurs pas à pas sont des moteurs sans balais et synchrones qui peuvent diviser son cycle de rotation complet en un certain nombre d'étapes discrètes. Contrairement à d'autres moteurs à courant continu sans balais qui fonctionnent en continu lorsqu'une tension à courant continu fixe est appliquée à travers eux les moteurs à étapes peuvent diviser leur mouvement de rotatoire en un certain nombre d'étapes selon un impulsion numérique.
Types de moteurs pas à pas
Deux types de moteurs pas à pas sont généralement utilisés:
La plupart du temps, nous pouvons faire la distinction entre ces deux moteurs en regardant le nombre de fils. Un moteur pas à pas avec 6 fils peut être classé comme Unipolaire et un 4 fils Le moteur peut être classé comme Bipolaire. La principale différence entre eux est le fil de robinet central qui divise l'enroulement de la bobine entièrement enroulé.
Le contrôle de ces moteurs pas à pas nécessite des conducteurs de moteur. Les conducteurs les plus couramment utilisés incluent ULN2003, L298N et A4988. Dans cet article, nous procéderons avec un conducteur à moteur bipolaire connu sous le nom A4988 moteur.
Composants requis
Les composants suivants sont nécessaires pour contrôler le moteur pas à pas avec Arduino:
Pourquoi utiliser le conducteur du moteur
Généralement, les moteurs pas à pas sont difficiles à contrôler en utilisant des broches Arduino. Ils retirent le courant 20 mA en raison du comportement électromagnétique des moteurs qui dépasse la limite actuelle des broches Arduino. Un autre problème est la tension de pots-de-vin, en raison de la nature électromagnétique, les moteurs continuent de produire de l'électricité même après les coupes de puissance, cela créera suffisamment de tension négative que ce qui peut faire frire votre arduino.
La solution à ceci est l'utilisation de puces ou de boucliers de conducteur de moteur. Les conducteurs de moteur ont des diodes qui empêchent Arduino de tensions négatives et de circuits à base de transistors qui fournissent suffisamment de puissance pour exécuter le moteur.
Module de pilote A4988
A4988 est l'un des meilleurs contrôleurs de moteur disponibles disponibles. Ce contrôleur de moteur intégré facilite l'interfaçage avec un microcontrôleur, car seules deux broches sont suffisantes pour contrôler la vitesse et la direction du moteur pas à pas. L'utilisation du contrôleur de moteur dédié présente de nombreux avantages:
A4988 Pinout
Le total de 16 broches est là dans le pilote A4988 comme suit:
Diagramme de câblage: Connexion A4988 avec Arduino Uno et Stepper Motor
Connectez le moteur pas à pas à Arduino en suivant le circuit mentionné ci-dessous:
Note: Le conducteur du moteur A4988 est équipé d'un condensateur en céramique à faible teneur. Il vaut mieux utiliser un Condensateur électrolytique Entre les broches VMOT & GND, nous avons utilisé ici un condensateur 100uf après l'alimentation.
Connexions A4988
A4988 | Connexion |
---|---|
Vmot | 8-35V |
GND | Motor GND |
Slp | RÉINITIALISER |
Premier | Slp |
VDD | 5V |
GND | Logique GND |
STP | PIN 3 |
Diron | PIN 2 |
1a, 1b, 2a, 2b | Moteur pas à pas |
Comment définir la limite de courant pour le moteur pas à pas
Avant de connecter l'Arduino avec le moteur pas à pas, il est important de régler le limite actuelle du conducteur du moteur inférieur à la cote de courant du moteur pas à pas, sinon le moteur chauffera.
Un petit potentiomètre présent sur le pilote A4988 peut définir la limite de courant, comme indiqué dans l'image. Sur les plans de rotation dans le sens horaire augmente et sur le courant de rotation anti-horaire, la limite de courant diminue.
Comment coder le moteur pas à pas avec arduino
Maintenant que nous avons terminé notre circuit et fixé la limite actuelle pour les pilotes de moteur, il est temps de contrôler les moteurs pas à pas à l'aide d'Arduino. Téléchargez le code suivant sur la carte Arduino en utilisant IDE car ce code ne nécessite aucune bibliothèque standard pour s'exécuter.
// Épingles et étapes de moteur pas à pas déclaré par révolution
#define Direction 2
#Define Étape 3
#Define Stepsinonerevolution 200
void setup()
// Déclarer les broches comme sortie:
PinMode (étape, sortie);
PinMode (direction, sortie);
VOID LOOP ()
DigitalWrite (direction, haut); // Le moteur tournera dans le sens des aiguilles d'une montre
// Le moteur terminera lentement une révolution
pour (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
DelayMicrosecondes (2000);
DigitalWrite (étape, bas);
DelayMicrosecondes (2000);
retard (1000);
DigitalWrite (direction, bas); // Le moteur tournera dans le sens antihoraire
// Le moteur terminera rapidement une révolution
pour (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
DelayMicrosecondes (1000);
DigitalWrite (étape, bas);
DelayMicrosecondes (1000);
retard (1000);
Explication du code
Nous commencerons notre croquis en définissant marcher et direction broches. Ici, je les ai utilisés avec Arduino Pins 2 et 3. La constante Stepsinonerevolution est défini avec sa valeur 200, j'ai réglé le pilote du moteur à son mode complet 200 étapes par révolution.
#define Direction 2
#Define Étape 3
#Define Stepsinonerevolution 200
Dans le installation() Section, en utilisant pinMode () Les broches de commande de moteur de fonction sont définies sous forme de sortie numérique.
void setup()
PinMode (étape, sortie);
PinMode (direction, sortie);
Dans le boucle() Section, le moteur terminera une révolution lentement dans le sens des aiguilles d'une montre et une révolution rapidement dans le sens antihoraire. C'est parce que nous avons réglé DigitalWrite () comme élevé et bas alternativement et diminuant DelayMicrosecondes () de 2 millisecondes à 1 millisecondes.
Regardez le code ci-dessous, Digitalwrite (direction, haut); est réglé sur HAUT valeur, le moteur tourne dans le sens des aiguilles d'une montre.
Le DelayMicrosecondes () est réglé sur 2 millisecondes, le moteur tourne lentement.
\
VOID LOOP ()
DigitalWrite (direction, haut); // Le moteur tournera dans le sens des aiguilles d'une montre
// Le moteur terminera lentement une révolution
pour (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
DelayMicrosecondes (2000);
DigitalWrite (étape, bas);
DelayMicrosecondes (2000);
De même, dans cette section, le moteur va plus rapidement en raison de moins de retard en millisecondes, mais dans la direction opposée (dans le sens antihoraire) en raison d'une faible valeur de DigitalWrite (direction, bas):
DigitalWrite (direction, bas); // Le moteur tournera dans le sens antihoraire
// Le moteur terminera rapidement une révolution
pour (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
DelayMicrosecondes (1000);
DigitalWrite (étape, bas);
DelayMicrosecondes (1000);
Vitesse de contrôle du moteur
La vitesse est déterminée par la fréquence de l'impulsion générée à marcher broche; Nous pouvons contrôler la fréquence de l'impulsion en changeant:
DelayMicRosecondes ();
Un délai plus court signifie une fréquence plus élevée et plus vite le moteur fonctionne.
Contrôle la direction de rotation
La direction de rotation du moteur est contrôlée en réglant la broche de direction élevée ou basse, nous utilisons la fonction suivante pour ce faire:
DigitalWrite (direction, haut); // dans le sens des aiguilles d'une montre
DigitalWrite (direction, bas); // dans le sens antihoraire
Comme dans l'exemple ci-dessus, nous n'avons utilisé aucune bibliothèque Arduino mais vous pouvez utiliser la bibliothèque de moteur pas à pas dans Arduino IDE. Une autre bibliothèque très célèbre disponible dans IDE principalement utilisée pour les moteurs pas à pas est Accélérat.H. Vous pouvez inclure cette bibliothèque en suivant ce chemin:
Allez dans Sketch> Inclure la bibliothèque> Gérer les bibliothèques> Recherche> Accelstepper> Installer:
Conclusion
Ce tutoriel vous a montré que les moteurs de steppers ne sont pas si difficiles à travailler. Nous avons couvert les principaux aspects du contrôle d'un moteur pas à pas à l'aide d'Arduino et de conducteur de moteur. Donc, si vous planifiez un projet qui vous oblige à positionner quelque chose précisément moteur pas à pas sera un choix idéal.