- Moteurs pas à pas:
- Calcul des pas par révolution pour le moteur pas à pas:
- Pourquoi avons-nous besoin de modules Driver pour moteurs pas à pas?
- Schéma et explication du circuit de commande de position du moteur pas à pas Arduino:
- Code pour la carte Arduino:
- Fonctionnement du moteur pas à pas avec Arduino:
Les moteurs pas à pas prennent de plus en plus leur place dans le monde de l'électronique. À partir d'une caméra de surveillance normale à une machine CNC / robot compliquée, ces moteurs pas à pas sont utilisés partout comme actionneurs car ils fournissent un contrôle précis. Un moteur pas à pas est un moteur synchrone sans balais qui effectue une rotation complète en un certain nombre d'étapes. Dans ce didacticiel sur le moteur pas à pas Arduino, nous en apprendrons davantage sur le moteur pas à pas 28-BYJ48 le plus couramment disponible et comment l'interfacer avec Arduino à l' aide du module de moteur pas à pas ULN2003.
Moteurs pas à pas:
Jetons un coup d'œil à ce moteur pas à pas 28-BYJ48.
D'accord, donc contrairement à un moteur à courant continu normal, celui-ci a cinq fils de toutes les couleurs fantaisie qui en sortent et pourquoi en est-il ainsi? Pour comprendre cela, nous devons d'abord savoir comment fonctionne un stepper et quelle est sa spécialité. Tout d'abord, les moteurs pas à pas ne tournent pas, ils marchent et sont donc également appelés moteurs pas à pas. Cela signifie qu'ils ne bougeront qu'une étape à la fois. Ces moteurs ont une séquence de bobines présentes en eux et ces bobines doivent être alimentées d'une manière particulière pour faire tourner le moteur. Lorsque chaque bobine est sous tension, le moteur fait un pas et une séquence de mise sous tension fera en sorte que le moteur effectue des étapes continues, le faisant ainsi tourner. Jetons un coup d'œil aux bobines présentes à l'intérieur du moteur pour savoir exactement d'où viennent ces fils.
Comme vous pouvez le voir, le moteur a un arrangement de bobine unipolaire à 5 fils. Il y a quatre bobines qui doivent être mises sous tension dans une séquence particulière. Les fils rouges seront fournis avec + 5V et les quatre fils restants seront tirés à la terre pour déclencher la bobine respective. Nous utilisons un microcontrôleur comme Arduino pour alimenter ces bobines dans une séquence particulière et faire en sorte que le moteur effectue le nombre d'étapes requis.
Alors maintenant, pourquoi ce moteur s'appelle -t-il le 28-BYJ48 ? Sérieusement!!! Je ne sais pas. Il n'y a aucune raison technique pour que ce moteur soit nommé ainsi; peut-être devrions-nous nous y plonger beaucoup plus profondément. Examinons certaines des données techniques importantes obtenues à partir de la fiche technique de ce moteur dans l'image ci-dessous.
C'est une tête pleine d'informations, mais nous devons en examiner quelques-unes importantes pour savoir quel type de stepper nous utilisons afin de pouvoir le programmer efficacement. Tout d'abord, nous savons qu'il s'agit d'un moteur pas à pas 5V puisque nous alimentons le fil rouge avec 5V. Ensuite, nous savons également qu'il s'agit d'un moteur pas à pas à quatre phases puisqu'il y avait quatre bobines. Maintenant, le rapport de démultiplication est donné à 1:64. Cela signifie que l'arbre que vous voyez à l'extérieur ne fera une rotation complète que si le moteur à l'intérieur tourne 64 fois. C'est en raison des engrenages qui sont connectés entre le moteur et l'arbre de sortie, ces engrenages aident à augmenter le couple.
Une autre donnée importante à noter est l' angle de foulée: 5,625 ° / 64. Cela signifie que le moteur, lorsqu'il fonctionne en séquence de 8 étapes, se déplacera de 5,625 degrés pour chaque étape et qu'il faudra 64 étapes (5,625 * 64 = 360) pour effectuer une rotation complète. Vous pouvez en savoir plus sur le fonctionnement des moteurs pas à pas avec ARM LPC2148, microcontrôleur ATMega16, MSP430.
Calcul des pas par révolution pour le moteur pas à pas:
Il est important de savoir comment calculer les pas par révolution de votre moteur pas à pas car ce n'est qu'alors que vous pourrez le programmer efficacement.
Dans Arduino, nous allons faire fonctionner le moteur dans une séquence de 4 étapes, donc l'angle de foulée sera de 11,25 ° car il est de 5,625 ° (donné dans la fiche technique) pour une séquence de 8 étapes, il sera de 11,25 ° (5,625 * 2 = 11,25).
Pas par tour = 360 / angle de pas
Ici, 360 / 11,25 = 32 pas par tour.
Pourquoi avons-nous besoin de modules Driver pour moteurs pas à pas?
La plupart des moteurs pas à pas ne fonctionneront qu'avec l'aide d'un module de pilotage. En effet, le module de contrôleur (dans notre cas Arduino) ne sera pas en mesure de fournir suffisamment de courant à partir de ses broches d'E / S pour que le moteur fonctionne. Nous allons donc utiliser un module externe comme le module ULN2003 comme pilote de moteur pas à pas. Il existe de nombreux types de modules de pilotage et la valeur nominale d'un module varie en fonction du type de moteur utilisé. Le principe principal de tous les modules de commande sera de fournir / absorber suffisamment de courant pour que le moteur fonctionne.
Schéma et explication du circuit de commande de position du moteur pas à pas Arduino:
Le schéma de circuit pour le projet de commande de moteur pas à pas Arduino est illustré ci-dessus. Nous avons utilisé le moteur pas à pas 28BYJ-48 et le module pilote ULN2003. Pour alimenter les quatre bobines du moteur pas à pas, nous utilisons les broches numériques 8, 9, 10 et 11. Le module de pilote est alimenté par la broche 5V de la carte Arduino.
Mais, alimentez le pilote avec une alimentation externe lorsque vous connectez une charge au moteur steppe. Depuis que j'utilise juste le moteur à des fins de démonstration, j'ai utilisé le rail + 5V de la carte Arduino. Pensez également à connecter la masse de l'Arduino avec la masse du module Diver.
Code pour la carte Arduino:
Avant de commencer à programmer avec notre Arduino, comprenons ce qui devrait réellement se passer à l'intérieur du programme. Comme indiqué précédemment, nous utiliserons la méthode de séquence en 4 étapes, nous aurons donc quatre étapes à effectuer pour effectuer une rotation complète.
Étape |
Broche sous tension |
Bobines sous tension |
Étape 1 |
8 et 9 |
A et B |
Étape 2 |
9 et 10 |
B et C |
Étape 3 |
10 et 11 |
C et D |
Étape 4 |
11 et 8 |
D et A |
Le module Driver aura quatre LED à l'aide desquelles nous pouvons vérifier quelle bobine est sous tension à tout moment. La vidéo qui montre la séquence de mise sous tension se trouve à la fin de ce tutoriel.
Dans ce tutoriel, nous allons écrire le code du moteur pas à pas arduino et pour cela nous programmerons l'Arduino de telle manière que nous puissions entrer le nombre de pas à effectuer par le moteur pas à pas via le moniteur série de l'Arduino. Le programme complet se trouve à la fin du tutoriel, quelques lignes importantes sont expliquées ci-dessous.
Le nombre de pas par tour pour notre moteur pas à pas a été calculé à 32; donc nous entrons cela comme indiqué dans la ligne ci-dessous
#define ÉTAPES 32
Ensuite, vous devez créer des instances dans lesquelles nous spécifions les broches auxquelles nous avons connecté le moteur pas à pas.
Pas à pas (STEPS, 8, 10, 9, 11);
Remarque: Le nombre de broches est désordonné comme 8,10,9,11 à dessein. Vous devez suivre le même schéma même si vous changez les broches auxquelles votre moteur est connecté.
Puisque nous utilisons la bibliothèque pas à pas Arduino, nous pouvons définir la vitesse du moteur en utilisant la ligne ci-dessous. La vitesse peut varier de 0 à 200 pour les moteurs pas à pas 28-BYJ48.
stepper.setSpeed (200);
Maintenant, pour faire bouger le moteur d'un pas, nous pouvons utiliser la ligne suivante.
stepper.step (val);
Le nombre d'étapes à déplacer sera fourni par la variable «val». Puisque nous avons 32 pas et 64 comme rapport de démultiplication, nous devons déplacer 2048 (32 * 64 = 2048), pour faire une rotation complète.
La valeur de la variable «val» peut être saisie par l'utilisateur à l'aide du moniteur série.
Fonctionnement du moteur pas à pas avec Arduino:
Une fois la connexion établie, le matériel devrait ressembler à ceci dans l'image ci-dessous.
Maintenant, téléchargez le programme ci-dessous dans votre Arduino UNO et ouvrez le moniteur série. Comme indiqué précédemment, nous devrons effectuer 2048 pas pour effectuer une rotation complète.Ainsi, lorsque nous entrons en 2048, le moteur effectuera une rotation complète dans le sens des aiguilles d'une montre en effectuant 2048 pas. Pour tourner dans le sens anti-horaire, entrez simplement le nombre avec le signe négatif «-». Ainsi, entrer -1024 fera tourner le moteur à moitié dans le sens anti-horaire. Vous pouvez entrer toutes les valeurs souhaitées, comme si vous saisissez 1, le moteur ne fera qu'un pas.
J'espère que vous avez compris le projet et que vous avez apprécié sa construction. Le fonctionnement complet du projet est montré dans la vidéo ci-dessous. Si vous avez des doutes, postez-les dans la section commentaires ci-dessous ou sur nos forums.