Comment connecter le moteur pas à pas avec Arduino

Comment connecter le moteur pas à pas avec Arduino
Les moteurs pas à pas sont couramment utilisés dans des appareils allant des machines CNC, des horloges analogiques à des imprimantes 3D et même dans les conduits de chauffage. En raison de leur couple de maintien précis et de leur grande précision, les moteurs pas à pas sont principalement utilisés où une haute précision est nécessaire. Avant de discuter de la façon dont le moteur pas à pas est contrôlé à l'aide d'Arduino, découvrons ce que sont les moteurs pas à pas:

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:

  • Bipolaire
  • Unipolaire

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:

  • Arduino Uno
  • Câble USB B
  • Moteur pas à pas (bipolaire)
  • Fils de cavalier
  • Conducteur de moteur (A4988)
  • Condensateur 100uf
  • Alimentation (8-35V)
  • Planche à pain

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:

  • Le conducteur du moteur contrôlait la logique de pas elle-même, libérant l'Arduino pour faire d'autres choses.
  • Le nombre de connexions est réduit, ce qui aide à contrôler plusieurs moteurs avec une seule carte.
  • Possible de contrôler le moteur même sans microcontrôleur en utilisant des ondes carrées simples.

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.