configuration moteur pas à pas avec driver

Bonjour, je suis entrain de faire un jeu avec un moteur pas à pas qui est fixé sur une tige fileté.
J'utilise une carte arduino Mega.

J'ai ce moteur : Longruner Stepper Motor Nema 17 avec un contrôleur TB6600.
comme celui-la:

J'aimerais savoir comment configurer le contrôleur pour avoir la vitesse la plus rapide du moteur sans que celui-ci 'ne bloque'.

Je pense utiliser la librarie 'AccelStepper', mais je tâtonne un peu en initialisant les:
_ setMaxSpeed()
_ setAcceleration()

Si vous pouvez me conseiller,
Merci.

Voici ce que j'ai lu dans le code d'accelStepper:

Speeds of more than 1000 steps per second are unreliable

Cela veut dire que le maximum c'est 5tr/s en mode pas et qu'il ne faut pas utiliser les micros pas pour ne pas diminuer la vitesse maximale que peut donner la bibliothèque. Les micros pas permettent de diminuer très fortement le bruit du moteur et suppriment quasiment les résonances à basse vitesse. En mode 16 micros pas, la vitesse maxi que j'ai pu obtenir est de 0,5tr/s, alors que j'arrive à tourner en écrivant moi même mon programme à 10tr/s à vide et 6tr/s en charge (mais mes moteurs sont sous-alimentés, on devrait pouvoir aller plus vite encore)

J'aimerais savoir comment configurer le contrôleur pour avoir la vitesse la plus rapide du moteur sans que celui-ci 'ne bloque'.

Pour configurer le moteur, il faut préciser ses caractéristiques, en particulier le nombre de fils, le courant maxi... Nema17 est une norme, il y a parmi les nema17 des moteurs que l'on ne devrait pas faire tourner avec un TB6600, d'autres au contraire qui vont bien avec, et des courants nominaux qui sont dans des rapports 10. "Cela ressemble" n'est pas suffisant. Sans information exact sur le moteur, il faudra tâtonner et faire des essais. La première question est quelle est la résistance d'un enroulement?

Il faut aussi noter que la vitesse maximale est presque proportionnelle à la tension d'alimentation du TB6600. Une alim 40V permettra des vitesses plus importantes qu'une 12V. 40V est le maxi de ce type de boitier, on devrait pouvoir trouver une alim de 36V.

Merci.

voici les caractéristique du moteur (il possède 4 fils.):

Si je comprends bien

Cela veut dire que le maximum c'est 5tr/s en mode pas et qu'il ne faut pas utiliser les micros pas pour ne pas diminuer la vitesse maximale que peut donner la bibliothèque.

il faut que je configure, "la premiere partie" du contrôleur avec les données de la ligne microStep = 1 (ON / ON / OFF)

Mais pour "la deuxième partie", je ne comprends pas

Je precise que pour l'instant j'ai une alimentation en 12v, je vais regarder pour en trouvé une plus puissante.
(Toujours dans l'optique d'avoir la vitesse maximale).

Merci de votre aide.
(j'ai mis en piece jointe les images)

controleur_2.png

moteur_1.png

controleur_2.png

moteur_1.png

il faut que je configure, "la premiere partie" du contrôleur avec les données de la ligne microStep = 1 (ON / ON / OFF)

Oui avec une bibliothèque qui n'est pas très rapide. Si on ne peut avoir que 1000 impulsions par secondes, on ira plus vite en microsteps=1. Pour moi le bon choix est de prendre une bibliothèque perso qui permet 100000 impulsions par secondes. Ainsi c'est le moteur qui va limiter.

Dans un premier temps, je conseille de faire tourner le moteur à des vitesses fixes (par exemple 0,1tr/s, 0,3tr/s 1tr/s 3tr/s...) en mode microsteps=1 puis en mode microsteps=8 ou 16 pour voir comment se comporte le moteur. Chez moi en microsteps=1 cela fait un boucan pas possible, si bien que je passe systématiquement en mode 16microsteps. Je reste persuadé que si cela marchait bien en mode microsteps=1, les circuits ne proposeraient pas le autres modes.

Mais pour "la deuxième partie", je ne comprends pas

Maintenant que j'ai les caractéristiques du moteur, je peux préciser. Le moteur consomme 1,7A par phase, il faut donc régler le courant sur le driver.
Je n'ai pas trouvé de documentation complète sur le boitier TB6600 (voir photos), mais si on s'en réfère au composant du même nom, je dirais qu'en mode microsteps=1, il faut régler le courant maximal comme donné par le moteur, dans le cas présent 1,5A/1,7A et pour les autres modes 1,4 fois supérieur (2,0A/2,2A).

Une autre solution est de régler sur la plus petite valeur et d'augmenter le courant si le moteur décroche, en se limitant aux valeurs ci-dessus. Cela permet au moteur de moins chauffer pour rien. Si la bibliothèque limite la vitesse du moteur, quel que soit le courant le moteur n'ira pas plus vite. Augmenter le courant augmente le couple, mais si on en a assez, ce n'est pas la peine de faire chauffer le moteur.

Un moteur qui s'échauffe de 10°C de plus voit sa durée de vie diminuée par 2...
Il est normal que la température de la carcasse du moteur atteigne les 60°C au fonctionnement nominal.

C'est pareil avec l'alimentation. Si le moteur ne décroche pas sous 12V, ce n'est pas la peine de mettre 36V.

Je précise que pour l'instant j'ai une alimentation en 12v, je vais regarder pour en trouver une plus puissante.

Plus puissante cela ne sert à rien, seule compte la tension. Pour le moteur, si il est utilisé au maximum, on aura dans une phase 1,7A et comme la résistance vaut 1,5ohms, la phase dissipera RI2=4,3W Comme il y a deux phases, le moteur peut dissiper au maxi 8,6W. L'alimentation doit fournir au moins 60% en plus soit 15W. Une alimentation 12V/15W est un bon choix, si on veut passer à 36V, il faudrait 36V/15W. Si les pertes sont plus importantes en 36V qu'en 12V, il faudra peut être une 36V/20W.

Je reste persuadé qu'il vaut mieux:

  1. régler le courant sur 1A
  2. en utilisant le mode microstep=1 puis 8 (éventuellement 4 ou 16) choisir le mode
  3. regarder ce que peut faire le programme (c'est fortement dépendant de la bibliothèque utilisée) et de faire tourner le moteur le plus vite possible
  4. augmenter le courant si le moteur décroche
  5. augmenter la tension si le moteur décroche

Je viens de faire des essais sur un moteur 17HS4401 c'est un nema 17, il n'est pas HS du tout). Il est alimenté par un A4988 sous 12V. Au lieu de régler le courant à 2,38A, je l'ai réglé à 0,85A Ainsi il ne chauffe quasiment pas. On doit donc pouvoir obtenir des performances supérieures avec 35V et 2,3A.

En mode pas, pour des vitesses de 40 à 50 tr/mn il y a résonance du moteur et il ne tourne pas. Normalement la résonance peut être atténuée voir disparaitre en charge. Vers 35 tr/mn, je l'ai même vu tourner à l'envers. Le bruit est en plus beaucoup plus important que dans les modes microspas. Je n'ai pas observé de résonances en dehors du mode pas entiers.

Il semblerait que les meilleures caractéristiques soient obtenues pour 10 microspas. C'est ce que j'ai aussi observé.
Les vitesses de démarrage maxi et de sur-vitesse maxi que je viens de mesurer sont:

  • pour 1 microspas: 250 tr/mn et 1500 tr/mn
  • pour 2 microspas: 333 tr/mn et 1657 tr/mn
  • pour 4 microspas: 365 tr/mn et 1764 tr/mn
  • pour 8 microspas: 375 tr/mn et 1845 tr/mn
  • pour 16 microspas: 360 tr/mn et 1845 tr/mn

En conséquence, je déconseille fortement de faire travailler un moteur à des vitesses supérieures à 30 tr/mn (1/2 tour par seconde) en mode pas. Et si on peut utiliser les microsteps (quasi impossible avec un 28BYJ-48 par exemple), c'est beaucoup mieux. 8 microsteps, c'est très bien, 16 n'apporte rien,sauf la réduction du bruit.

Merci pour les explications et conseils,

Je vais regarder tout cela en detail.