moteur pas a pas

Bonjour,
existe t'il un moyens de transformer une commande de moteur pas a pas de full step en dir/step.
je voudrais conserver une machine qui est commandée en full step je pense par des ponts en H : 8 signaux donc deux par bobine 4 pour chaque axe . et remplacer ces drivers par d'autres qui sont commandées en Dir/Step .

Cette "commande" est faite comment actuellement ? Une carte Arduino ? Autre chose ? Est ce que vous voulez la garder et que donc le problème serait de faire une fonction qui reçoit vos huit signaux et fabrique deux groupes dir/step ? Pouvez vous précise à quelle vitesse (tours par minutes, pas par seconde, etc.) tournent vos moteurs ?

c'est une machine que j'ai récupéré, qui devait servir pour du positionnement je pense ou une rotation précise de divers objets. la commande est simple, soit des position soit des rotation piloter par des potar.
les moteurs sont de type nema 17 en 12v dans les 2A, mais j'aimerai un peut plus de couple et surtout une possibilité de micros pas.

nema 17 en 12v dans les 2A

Ces données sont à vérifier, cela me semble beaucoup pour un nema 17.
Si c'est vrai, et que l'alimentation est déjà en 12V, il sera impossible d'augmenter le couple à bas régime et à l'arrêt. On peut perdre un peu moins de couple à hautes vitesses en l'alimentant avec un driver "en courant", mais il faut alors alimenter avec des tensions nettement supérieure à 12V (en 48V par exemple).
En gros, ce n'est pas parce qu'on met un chauffeur de poids lourd dans une Clio que l'on peut espérer charger 38 tonnes.
Pour ce qui est des micros pas, si le moteur est vraiment un 2A, c'est possible de mettre un driver, mais je ne crois pas dut tout au 2A. Si c'est un moteur 500mA, il faut pouvoir régler le driver à cette valeur. Peut être possible avec une carte avec ajustable. Si le courant est réglé trop haut, c'est quasiment le mode demi-pas qui va être réalisé. Et ce mode demi pas est sans doute accessible avec le montage actuel.
Il y a une commande actuelle de la machine. Que voulez vous faire? Changer la commande? Insérer une carte entre la commande et les moteurs comprenant un micro et des drivers?
Si le positionnement se fait par recopie d'un potentiomètre, la résolution est due à la qualité du potentiomètre et de la conversion, et les modes micros pas n'apporteront pas grand chose.

Du positionnement piloté par des potars avec des moteurs pas à pas ? Il faudrait une description un peu plus précise de ce que vous avez et de ce que vous voulez changer / rajouter pour pouvoir vous aider. Des Nema17 à 2A par bobine ce n'est pas standard, mais je pense que ça existe. En général quand on fait ce choix là c'est qu'on veut tourner vite. Autre indication qui manque.

En général quand on fait ce choix là c'est qu'on veut tourner vite

Si on veut tourner vite, il faut un moteur basse tension (quelques volts) pour les commander en courant, et pas en 12V qui se commandent en tension.


Voici la photo du plus gros nema17 que j'ai. Il se peut qu'il y en ait de plus puissants encore:


Mais ce n'est qu'un 7W/enroulement! Pour avoir un 24W/enroulement, il faudrait sans doute multiplier sa longueur par 2 ou 3! C'est pour cela que j'émets des doutes sur un 12V/2A (en nema17).

vileroi:
Si on veut tourner vite, il faut un moteur basse tension (quelques volts) pour les commander en courant, et pas en 12V qui se commandent en tension.
.../...
Mais ce n'est qu'un 7W/enroulement! Pour avoir un 24W/enroulement, il faudrait sans doute multiplier sa longueur par 2 ou 3! C'est pour cela que j'émets des doutes sur un 12V/2A (en nema17).

La "tension" sur les enroulements d'un moteur pas à pas n'est que le maximum qu'on peut y appliquer en continu, moteur arrêté, sans que l'échauffement ne détruise le bobinage. Lorsque le moteur tourne, il produit une force contre-électromotrice, et donc on peut lui appliquer une tension supérieure à cette valeur. Dans ce cas, la limite à respecter est une limite en courant. Par exemple 2A. Donc si on achète un moteur prévu pour 2A, et qu'on sait réguler le courant dans les bobinages, on peut le faire tourner vite en lui appliquant des tensions bien supérieures à cette "tension nominale". Plus on veut tourner vite, plus on doit ainsi "survolter". J'ai vu des moteurs donnés pour 12V nominal alimentés en hacheur avec une tension continue de 48V (limite d'un L298) en amont du pont. Donc je confirme et je maintiens que, pour tourner vite, on choisit un moteur avec une intensité max dans les bobines importante, et si on trouve 2A en Nema17, on prend, même si la tension nominale marquée sur l'étiquette est 6V, à condition bien sur de savoir réguler le courant.
Cela dit, je ne sais pas du tout quel est le montage de notre interlocuteur, est ce qu'il régule le courant ou pas ? Quel type de drive en dir/step il veut mettre en place, avec ou sans régul de courant. On parle dans le vide pour l'instant.

pardon, un peu de précision s'impose en effet.
je ne désir pas garder les anciens moteurs ni les drivers, juste la commande : un bouton rotatif avec 6 positions pour mètre le plateau en 6 endroits et deux potards ( pour faire tourner en vitesse et non en positionnement).
vitesse du plateau environ: 1 tour seconde, je pense qu'il y a une réduction d'environ 1 tour plateau pour 10 tours moteur. le plateau de 40 cm de diamètre devrait faire tourner une charge d'environ 10 kg plus ou moins centrée, il y a une orientation vertical et horizontal.
les commandes se font par deux fois quatre signaux qui entraient dans les anciens drivers (pont en H puisque quatre fils par drivers, deux bobines a commandées selon le sens a,a+,b,b+)
j'aimerai récupérer cette commande pour entré dans des drivers genre ( https://www.reprap-france.com/produit/1234568429-pilote-de-moteur-pas-a-pas-tb6600) pris au hasard sur internet pour exemple. qui sont commandés en Dir/Step.
il me faut donc une astuce pour convertir les signaux de la commande vers ce type de drivers.
Un programme qui reprend les signaux : si A est a 1 et A+ a 0 alors on envoie 1 a DIR en conservant la le signal de A pour le step et inversement pour l'autre sens.

imaljl:
pardon, un peu de précision s'impose en effet.
je ne désir pas garder les anciens moteurs ni les drivers, juste la commande : un bouton rotatif avec 6 positions pour mètre le plateau en 6 endroits et deux potards ( pour faire tourner en vitesse et non en positionnement).
vitesse du plateau environ: 1 tour seconde, je pense qu'il y a une réduction d'environ 1 tour plateau pour 10 tours moteur. le plateau de 40 cm de diamètre devrait faire tourner une charge d'environ 10 kg plus ou moins centrée, il y a une orientation vertical et horizontal.
les commandes se font par deux fois quatre signaux qui entraient dans les anciens drivers (pont en H puisque quatre fils par drivers, deux bobines a commandées selon le sens a,a+,b,b+)
j'aimerai récupérer cette commande pour entré dans des drivers genre ( https://www.reprap-france.com/produit/1234568429-pilote-de-moteur-pas-a-pas-tb6600) pris au hasard sur internet pour exemple. qui sont commandés en Dir/Step.
il me faut donc une astuce pour convertir les signaux de la commande vers ce type de drivers.
Un programme qui reprend les signaux : si A est a 1 et A+ a 0 alors on envoie 1 a DIR en conservant la le signal de A pour le step et inversement pour l'autre sens.

Vous avez écrit plus haut que vous souhaitiez que vos drivers fonctionnent en micro-pas, cela signifie qu'entre chaque état (pas ou demi pas suivant le cas) de votre commande actuelle, vous désirez interpoler plusieurs ordres "step" vers votre nouveaux pilotes. Donc il ne s'agit pas d'une simple "astuce" comme vous le dites, mais de réaliser un interpolateur temporel. Je n'en connais pas de tout fait, mais peut être qu'en cherchant bien vous pourriez trouver. Sinon, à votre IDE pour le programmer. Pas du niveau d'un débutant en informatique temps réel. Par contre si vous admettez de garder le même fonctionnement du moteur (pas ou demi pas), ce n'est pas très difficile.

Pour que l'on puisse te conseiller au mieux, il faut que l'on sache exactement quel moteur il y a . Il y quasimet toujours une étiquette avec la référence. Éventuellement une photo de la plaque.

Quel est exactement l'intérêt de changer les moteurs?

  • Si c'est pour avoir plus de couple, et qu'il faut changer de moteurs, il suffit de prendre le même type de moteur mais plus puissant.
  • Si c'est pour augmenter la tension pour récupérer plus de couple à vitesse élevée, il faut prendre un couple L297+L298 qui, sans changer la commande, peut monter à 45V
  • Si c'est pour passer en mode micros pas, la commande le peut-elle? Il faut pour que l'on puisse changer "avance de 100 pas" en "avance de 800 pas". Le nombre de pas est-il imposé ou la commance permet elle de le modifier? Le passageen micro pas permet surtout d'avoir moins de bruit et de supprimer les résonances. Le système a-t-il des résonnances ou fait il trop de bruit?

Je dis souvent si on sait exprimer exactement et sans équivoque ce que doit faire le système alors on doit pouvoir le réaliser. Si on ne le peut pas alors on n'arrivera pas à automatiser. Par exemple, si on veut qu'une table dessine un carré de 5cm de côté centré sur la feuille, c'est possible. Si on veut dessiner "un beau visage" on ne peut pas le faire. Pour passe de commande par bobine vers step/dir, voici un exemple de signal si la commande est en pas entiers, mode deux phases à la fois:
1.gif
C'est facile de créer le signal step: "A chaque changement de A ou de B, on fait une impulsion sur step de Xµs"
Pour Dir c'est nettement plus compliqué, si les deux signaux A et B sont haut tous les deux, dir doit être haut AVANT si A change (1), et bas AVANT si c'est B qui change (2). Comme on ne peut pas changer Dir avant l'évènement, il faut systématiquement calculer Dir, puis retarder step. Il faut donc une table. Il faut soit connaitre le mode qui était utilisé (une phase à la fois, deux phase à la fois, demi-pas) soit gérer les trois tables possibles. Ce n'est donc pas simple. J'ai franchement l'impression que c'est plus facile de réécrire le programme qui gère les moteurs que de faire un circuit avec des portes ou un porgramme qui fait le changement.
C'est encore pire si on veut faire un dispositif qui change une commande de pas en micro pas.
2.gif
Au dessus un changement sur une bobine A. Il faut par exemple gérer 8 impulsions pour attaquer step. Mais si on a qu'une seule impulsion, quel temps mettre entre caque impulsion? Une solution est de mesurer le dernier temps entre les deux derniers pas, diviser par 8, et utiliser ce temps. Mais si jamais on tourne lentement dans un sens, on s'arrête et on repart vite dans l'autre sens, au moment ou on repart dans l'autre sens, on n'aura pas le temps de faire les impulsions entre les deux premières impulsions rapides si on pense qu'il faut aller lentement. C'est encore plus compliqué que de faire une transformation pas ->step/dir.

il produit une force contre-électromotrice, et donc on peut lui appliquer une tension supérieure à cette valeur....

Je suis sûr que c'est plus la valeur de l'inductance qui fait que l'on a intérêt, si on peut, d'augmenter la tension. Je reste persuadé que la fcem est moins importante que l'effet de l'inductance.
Si je fais tourner mon moteur alimenté en 12V à 30tr/s, la fcem est quasiment de 25V. Pourtant mon moteur tourne encore.

1.gif

2.gif

Petite mesures prises: Une phase à la fois,
Je vais tenter de prendre des mesures plus complètes avec un oscilo et de faire un bout de code avec les expliquations de « vileroi « (merci de ta patience)
Le couple L297 et L298 me parait bien aussi (j’ai Vue un module tout fait sur le net)
J’ai parcouru le forum et il y a quelques infos là dessus

Il est important de savoir si ton moteur et ta commande, actuellement, sont en pas complets ou demi pas. Dans le premier cas tu t'en tires avec une "machine à quatre états", dans le second avec une "machine à huit états". Comme Villeroi te l'a expliqué, si tu veux augmenter la résolution de ta commande par rapport à la solution actuelle, c'est compliqué et si tu n'en as pas vraiment le besoin il vaut mieux éviter de t'y lancer, sauf si tu as déjà une bonne culture et un passé en programmation temps réel.

@Villeroi. Oui l'inductance joue pour pouvoir augmenter la tension et générer des tensions pseudo-sinusoidales de fréquence élevée, donc tourner vite.

Attention: le fait de changer de driver ne jouera pas du tout pour les vitesses faibles. Je ne suis pas sûr que cela en vaille vraiment la peine. Maintenant pour tourner à 10 tr/s, c'est souvent au dessus d'un démarrage direct sans accélération.

J'ai l'impression que changer les moteurs, les drivers et la commande sera à peine plus compliqué, mais procurera de meilleures performances. Si le programme utilise 2 potars pour régler la vitesse et qu'il n'y a que deux moteurs, c'est assez simple. Avec l'utilisation d'une bibliothèque, il y a moyen de gérer facilement les accélérations, indispensables pour tourner à 10tr/mn.

pour le fun je vais tenter de faire un peu de code avec le montage actuel.
Mais je vais prendre l’option de "vileroi". Je vais garder la mécanique et changer la commande les drivers et les moteurs. Une bibliothèque, une arduino un peu de code qui me semble accessible, ça devrait pouvoir gérer 6 positions et deux vitesses pour les moteurs sans trop de difficultés.

Confirme la vitesse de rotation des moteurs, j'ai cru voir 10tr/s. A cette vitesse à ma connaissance, seule la bibliothèque QuickStep est capable de fournir les informations avec accélérations. Avantge de cette bibliothèque: si tu as des problèmes avec, je suis là pour t’aider. Autre avantage, les microspas sont possibles, ce qui diminue pas mal le bruit.

Donne quand même la référence des moteurs actuels, cela peut être utile pour en choisir si tu en changes.

merci
je vais regarder ça de près :wink:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.