- 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 de circuit pour moteur pas à pas rotatif utilisant un potentiomètre:
- Code pour la carte Arduino:
- Travail:
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. Dans ce didacticiel, nous en apprendrons davantage sur le moteur pas à pas 28-BYJ48 le plus couramment / le moins cher disponible et comment l'interfacer avec Arduino à l' aide du module pas à pas ULN2003.
Dans le dernier projet, nous avons simplement interfacé le moteur pas à pas avec Arduino, où vous pouvez faire tourner le moteur pas à pas en entrant l'angle de rotation dans Serial Monitor of Arduino. Ici, dans ce projet, nous allons faire tourner le moteur pas à pas à l'aide du potentiomètre et de l'Arduino, comme si vous tournez le potentiomètre dans le sens des aiguilles d'une montre, le pas à pas tournera 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 tournera dans le sens inverse des aiguilles d'une montre.
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.
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 de circuit pour moteur pas à pas rotatif utilisant un potentiomètre:
Le schéma de circuit pour le contrôle du moteur pas à pas à l'aide du potentiomètre et de l'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. Un potentiomètre est connecté à A0 en fonction des valeurs desquelles nous allons faire tourner le moteur pas à pas.
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 Driver.
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 alimentée à un moment donné. La vidéo de démonstration complète se trouve à la fin de ce tutoriel.
Dans ce tutoriel, nous allons programmer l'Arduino de manière à pouvoir tourner le potentiomètre connecté à la broche A0 et contrôler la direction du moteur pas à pas. 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 dans le sens horaire, nous pouvons utiliser la ligne suivante.
stepper.step (1);
Pour faire bouger le moteur d'un pas dans le sens anti-horaire, nous pouvons utiliser la ligne suivante.
stepper.step (-1);
Dans notre programme, nous lirons la valeur de la broche analogique A0 et la comparerons à la valeur précédente (Pval). S'il a augmenté, nous nous déplaçons de 5 pas dans le sens des aiguilles d'une montre et s'il est diminué, nous nous déplaçons de 5 pas dans le sens inverse des aiguilles d'une montre.
potVal = map (analogRead (A0), 0,1024,0,500); if (potVal> Pval) stepper.step (5); if (potVal
Travail:
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, vous devez faire tourner le potentiomètre pour contrôler la rotation du moteur pas à pas. Le faire tourner dans le sens des aiguilles d'une montre fera tourner le moteur pas à pas dans le sens des aiguilles d'une montre et vice versa.
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.