Comment on peut contrôler un moteur pas à pas avec le PWM?

Comment on peut contrôler un moteur pas à pas avec le PWM?

Programmation de moteurs pas à pas arduino

Il s’agit d’un module générateur d’impulsions, ce qui signifie qu’il fournit un signal de commande au contrôleur, de sorte que vous pouvez contrôler un moteur pas à pas sans Arduino ! Pour contrôler le moteur pas à pas, vous devez être équipé d’un pilote de moteur pas à pas. C’est-à-dire que vous avez besoin au moins des éléments suivants : ce contrôleur (il vient remplacer le microcontrôleur, par exemple Arduino), vous avez également besoin d’un pilote de moteur pas à pas et bien sûr d’un moteur pas à pas !

Les conditions suivantes s’appliquent uniquement aux achats en ligne (à l’exclusion des commandes dont le mode d’expédition est la livraison depuis le magasin) sur notre boutique en ligne, conformément à la directive européenne 2011/83/EU.  Pour les achats effectués dans notre réseau de magasins, les conditions de retour s’appliquent, que vous trouverez affichées dans chaque magasin ou sur le document de vente.

S’il vous plaît prêter une attention particulière avant d’acheter le produit pour la période de garantie en raison du fait qu’ils varient d’un fabricant à l’autre et en raison de la nature des produits où nous commercialisons si elles sont couvertes par la garantie, les produits vendus par notre société et sont caractérisés comme des composants et non des dispositifs finis ne sont pas couverts par la garantie, sauf si le fabricant définit une certaine période de temps comme une garantie.

Contrôle PWM d’un stepper

J’ai passé en revue les différents exemples de PWM, notamment le PWM à faible puissance, le pilote PWM et la bibliothèque PWM.    Ce que je recherche, c’est une solution très simple pour piloter un moteur pas à pas bipolaire en utilisant deux broches qui contrôlent un circuit intégré de pilotage de moteur pas à pas.    Pour piloter un moteur pas à pas bipolaire, il suffit d’envoyer quatre valeurs {00, 10, 11, 01} sur les deux broches pour une direction et dans l’ordre inverse pour la direction opposée.    Je veux pouvoir contrôler le nombre de pas de rotation du moteur pas à pas et le faire fonctionner pendant un certain temps jusqu’à ce que je l’éteigne.    Je veux également contrôler la vitesse des pas.    Je ne suis pas sûr que le PWM soit le meilleur moyen de le faire.    J’ai également déterminé que la solution PWM à faible puissance est adéquate pour mon application, si l’utilisation de la fonction PWM est la meilleure façon de la mettre en œuvre, dans la mesure où je n’ai pas besoin d’une fréquence élevée pour le moteur pas à pas.

  Robot arduino imprimer en 3d

Potentiomètre pour moteur pas à pas Arduino

Après avoir installé avec succès le support ESP-IDF de PlatformIO (et poussé un soupir de soulagement, rien d’autre ne semble cassé sur mon ordinateur), j’ai recommencé à m’entraîner à écrire du code pour ESP32. L’exercice suivant a été motivé par le projet de décodeur audio optique d’Emily où nous avons échangé quelques e-mails sur la génération de signaux de moteurs pas à pas. Pour son projet, elle a utilisé un Arduino et la bibliothèque AccelStepper, mais sa vitesse maximale est d’environ quatre mille pas par seconde sur les Arduinos classiques. J’étais persuadé que l’ESP32 pouvait faire bien mieux que cela, et j’ai décidé de l’essayer moi-même.

C’était aussi l’occasion de jouer avec une carte Trinamic TMC2208 breakout board parfois appelée SilentStepStick. Je pense que cette carte pourrait être une conception originale de Trinamic, mais il y a une petite chance qu’ils aient juste hébergé des matériaux sur leur site web puisque c’était une utilisation si populaire de leur puce. Quoi qu’il en soit, il y a beaucoup de vendeurs sur Amazon qui vendent ces cartes dans des multi-packs(*) abordables destinés au marché des imprimantes 3D. Principalement pour les personnes qui ne sont pas satisfaites du gémissement aigu de nombreuses imprimantes 3D bon marché, car la TMC2208 est un bon choix pour aider une imprimante à fonctionner beaucoup plus silencieusement qu’elle ne le ferait avec la très populaire puce pilote A4988 qui a contribué à lancer la vague actuelle d’imprimantes 3D grand public. Mes propres imprimantes 3D avaient des pilotes A4988 soudés sur la carte, je ne pouvais donc pas utiliser ces modules pour les mettre à niveau, mais je prévois que ces modules seront utiles dans d’autres projets.

  Comment fonctionne un détecteur de gaz?

Fréquence du moteur pas à pas Arduino

Je travaille sur un projet pour un dispositif de contrôle de jardin qui comprend quelques moteurs pas à pas. Comme il s’agit d’un jardin et non d’une imprimante 3D, il n’est pas nécessaire de contrôler les moteurs pas à pas avec une précision de l’ordre de la microseconde ou du pas individuel.

Je pilote actuellement les moteurs pas à pas par le biais de Polulu – DRV8825 Stepper Motor Drivers qui fonctionne bien, et j’apprécie de ne pas avoir à brûler 4 broches par moteur. J’ai actuellement 2 moteurs câblés et fonctionnant avec le schéma de câblage fourni par Polulu.

Pour une raison ou une autre, j’ai négligé les bibliothèques de moteurs pas à pas dans l’IDE Photon Web et je les ai programmées moi-même en utilisant des boucles for() et en réglant la broche de pas sur High puis Low avec un délai de 5ms entre les deux. Cela entraîne bien sûr le blocage du programme pendant qu’un stepper tourne, ce que je préfère ne pas faire car plusieurs fonctions de jardinage fonctionnent pendant plusieurs RPM ou minutes à la fois.

J’ai lu plusieurs fils de discussion sur le stepper ici, mais j’ai vu un commentaire indiquant que la bibliothèque du stepper peut également bloquer. Il semble que AccelStepperSpark ne soit pas bloquant, mais c’est une bibliothèque assez longue et complexe, comme il se doit pour couvrir toutes les options/configurations.