Comment faire tourner un moteur pas à pas avec Arduino?

Comment faire tourner un moteur pas à pas avec Arduino?

Tutoriel arduino sur les moteurs pas à pas

Les moteurs pas à pas sont un choix idéal pour déplacer et positionner avec précision des dispositifs mécaniques. En utilisant des techniques comme le micropas, la position de l’arbre du moteur peut être contrôlée avec une grande précision.

Les moteurs pas à pas sont disponibles dans une large gamme de tailles. À l’extrémité inférieure de l’échelle, on trouve les moteurs pas à pas utilisés dans les lecteurs de DVD et de Blu Ray pour positionner la tête laser. À l’autre extrémité de l’échelle se trouvent les énormes moteurs pas à pas qui peuvent contrôler la position des imprimantes 3D et des machines CNC de taille industrielle.

Dans l’article précédent, nous avons appris que les moteurs pas à pas sont disponibles dans deux configurations de câblage courantes, unipolaire et bipolaire. La plupart des grands moteurs pas à pas sont bipolaires, ce qui signifie qu’ils ont 4 fils, deux par bobine.

Les moteurs pas à pas bipolaires peuvent être pilotés à l’aide de modules dédiés ou avec des ponts en H. Dans l’article précédent, nous avons utilisé un module pas à pas A4988 et un pont en H L298N pour piloter des moteurs pas à pas bipolaires avec un Arduino pour piloter un moteur commun de taille NEMA 17.

La tension nominale n’est PAS la tension maximale que le moteur pas à pas peut supporter, ni la tension de fonctionnement que le fabricant vous recommande d’utiliser dans votre conception. La tension nominale est en fait un simple calcul mathématique :

  Comment faire clignoter les LEDs?

Programmation de moteurs pas à pas arduino

Le kit de pilotage de moteur pas à pas à engrenage comprend un moteur pas à pas et une carte de pilotage de moteur. Il s’agit d’un moteur pas à pas à quatre phases et huit pas que vous pouvez facilement contrôler via la carte de pilotage.Applications typiques- imprimante de bureau- traceur- imprimante 3D- fraiseuses CNCDonnées techniques

– Tension de fonctionnement : 5 V- Phases : 4- Rapport de réduction : 1/64- Angle de pas : 5.625°/64°/64- Diamètre : 28 mm / Nema 11- Fréquence d’entraînement à vide : >500 Hz- Fréquence de traction externe à vide : >1000 Hz- Résistance : 21 ±7%.- Bruit : 40 dB- Mode de commande : fonctionnement à quatre phases et huit étapesPlus d’informations sur la carte ainsi que les fiches techniques, les instructions, les téléchargements sont disponibles sur http://wiki.seeedstudio.com/Gear_Stepper_Motor_Driver_Pack/.

Contrôle de la position du moteur pas à pas d’Arduino

Un moteur pas à pas est un moteur synchrone sans balais qui divise une rotation complète en un certain nombre de pas. Contrairement à un moteur à courant continu sans balais, qui tourne de manière continue lorsqu’une tension continue fixe lui est appliquée, un moteur pas à pas tourne selon des angles de pas discrets.

Les moteurs pas à pas sont donc fabriqués avec des pas par révolution de 12, 24, 72, 144, 180 et 200, ce qui donne des angles de pas de 30, 15, 5, 2,5, 2 et 1,8 degrés par pas. Le moteur pas à pas peut être contrôlé avec ou sans rétroaction.

Imaginez un moteur sur un avion RC. Le moteur tourne très vite dans un sens ou dans l’autre. Vous pouvez faire varier la vitesse avec la quantité de puissance donnée au moteur, mais vous ne pouvez pas dire à l’hélice de s’arrêter à une position spécifique.

  Comment faire un feu tricolore avec Arduino?

Imaginez maintenant une imprimante. Il y a beaucoup de pièces mobiles dans une imprimante, y compris des moteurs. L’un de ces moteurs sert à l’alimentation en papier, en faisant tourner des rouleaux qui déplacent la feuille de papier pendant que l’encre est imprimée dessus. Ce moteur doit être capable de déplacer le papier sur une distance exacte pour pouvoir imprimer la ligne de texte suivante ou la ligne suivante d’une image.

Arduino moteur pas à pas pwm

Ceci est le point de départ de mon code de moteur pas à pas. Il utilise deux broches Arduino pour émettre un signal d’impulsion et un signal de direction vers le pilote du moteur, un A4988. Un délai de 800 microsecondes est utilisé entre les impulsions pour réguler la vitesse du moteur pas à pas.

Le câblage est le même que dans l’exemple précédent. Plutôt que delayMicroseconds(), la fonction micros() est utilisée pour la temporisation. Contrairement à delayMicroseconds(), micros() ne retarde pas artificiellement l’exécution. Elle renvoie uniquement le temps d’exécution total du programme en microsecondes, qui est utilisé pour déclencher des événements en fonction d’intervalles prédéfinis.

Le PUL_PIN et le DIR_PIN devront être définis soit dans votre code, soit transmis comme un numéro de broche littéral à la fonction init(). Le long non signé ‘speedOne’ peut aussi être littéral, mais il est préférable de le garder comme variable pour permettre à d’autres fonctions de changer cette valeur à la volée. Le dernier argument est un booléen HIGH/LOW pour la direction du moteur pas à pas.

Trois broches de l’ATtiny85 se connectent au 74HC595. Le 74HC595 reçoit les données de l’ATtiny85 et sort ses 8 bits en parallèle (via 8 broches) vers quatre drivers A4988 (deux broches chacun pour Pulse et Direction).

  Comment faire clignoter une LED Microbit?