moteur pas à pas commandés de façon synchrone

Bonjour,

Je cherche un système de commande de 2 moteurs pas à pas qui permettrait de les piloter de façon synchrone. Par exemple un premier moteur ferait 200 tours pendant que l'autre en ferait 40. Existe-t-il une carte pilotable par un port série et offrant cette possibilité ?

Merci pour tout conseil.

Reply to
val
Loading thread data ...

Le 07/10/2011 13:12, val a écrit :

bonjour Synchronisé sur quels critères ? la durée d'évolution,la vitesse, la course, le début de l'ordre, la fin ?

Sylvain

Reply to
sylfranc

sylfranc a écrit le 07/10/2011 :

Synchronisé comme si à chaque fois que tu faisais un tour avec l'un, l'autre ferait une fraction de tour constante 1/n (imagine comme un engrenage virtuel entre les deux).

Reply to
val

Il suffit de diviser la fréquence d'horloge par 5 pour piloter le second moteur ?

Reply to
cLx

Oui, par 5 ou toute autre valeur.

Mais il faut donc une unité commune pour piloter les 2 moteurs. C'est ça que je cherche. Je n'ai pas envie d'avoir à gérer la synchronisation. Idéalement j'aimerais une carte (pas une carte PC, hein) munie d'un port série par lequel on pourrait envoyer des ordres tels que start(moteur1:1000Hz, moteur2:500Hz). C'est un truc comme Charly robot, si ça vous dit quelque chose.

Reply to
val

Je crois que je demanderais (en C) a un micro-contrôleur de le faire, ce dernier relié à deux drivers "double pont en H", après ce n'est plus que de la programmation (avec deux machines à états, une par moteur). On peut le faire avec des L297/L298, une horloge et des diviseurs aussi ! Ça pourrais être un bon projet pour commencer le VHDL.

J'ai vu l'engin dans un bâtiment de la fac, mais jamais utilisé ce truc personnellement.

Reply to
cLx

Le 07/10/2011 15:02, val a écrit :

bonjour l'unité d'actualisation commune est arbitraire, il s'agit simplement de la definir. Si vous parlez en Hz, l'unité de temps est implicitement la seconde.

Si j'ai bien compris , vous voulez qu'un moteur pas pas fasse X steps, pendant que le 2eme (3eme) en fait Y sur une durée identique ? . Si c'est le cas , il s'agit simplement de déterminer le(s) facteur de division découlant de l'ordre le plus élevé envoyé. si 1000 unités arbitraires est la quantité maximale, les ensembles asservis doivent être simplement déduits. la synchronisation est là le top début de chaque période de temps arbitrairement defini. C'est une simple division entre la facteur le plus elevé et le rapport recherché pour les moindres.

Ce n'est pas compliqué de gerer ça avec des petits microcontroleurs, tant que la période commune reste dans les possibilités du microcontroleurs. Si la récurrence est de l'ordre du kHz, c'est "assez facile " avec des microcontroleurs courants.

Sylvain

Reply to
sylfranc

C'est un projet pour le boulot, une nouvelle machine à bobiner. Un moteur bobine tandis que l'autre règle l'avance pour que les spires soient bien rangées. A un tour du premier moteur correspond donc, pour l'autre moteur, à une avance égale au diamètre du fil + epsilon. Et ainsi de suite pour chaque couche aller ou retour.

J'ai pas trop envie de réinventer la roue en utilisant un microcontrôleur pour piloter les 2 moteurs. Je préfèrerais vraiment n'avoir à gérer que le soft. A la limite je pourrais utiliser un micro pour piloter la machine en envoyant les commandes séries correspondant à chaque prog de bobinage mais je ne pense pas être capable de gérer directement des "double ponts en H".

En tout cas merci pour votre avis.

Reply to
val

sylfranc a pensé très fort :

Vous avez bien résumé la situation et c'est probablement faisable avec des micros cadencés à quelques MHz. Mais franchement j'ai vraiment pas envie d'avoir à gérer des problèmes de synchro. A chaque fois c'est simple sur le papier et puis ça devient très compliqué dans la pratique... Si encore c'était faisable avec des micro genre picbasic très faciles à programmer j'aurais peut-être tenté le coup mais ils sont loin d'être assez rapides pour ce que je veux faire.

Reply to
val

On 8 oct, 13:21, val

Avec une carte standard d'interface PC -> sorties TOR

  • interface de puissance (=E0 transistors, pas =E0 relais ;o) tu pourrais g=E9rer directement les moteurs depuis ton soft PC.

Le pont en H n'est pas un probl=E8me, il est juste l=E0 pour fournir de la puissance aux bobinages, et de toutes facons il faudra bien g=E9n=E9rer les =E9tats logiques =E0 appliquer aux moteurs : en g=E9n=E9ral on cr=E9=E9e une table const[] qu'on se contente de lire avec un pointeur =E0 une cadence d=E9pendant de la vitesse voulue.

Que tu pilotes un seul ou 10 moteurs n'y change rien, dans ton cas le uC devra mettre =E0 jour les sorties en fonction des deux vitesses voulues V1 et V2 pour conserver leur rapport V1/V2, et ca, ce n'est plus que du soft.

Reply to
Jean-Christophe

micros cadencés à quelques MHz. Mais franchement j'ai

c'est simple sur le papier et puis ça devient très

picbasic très faciles à programmer j'aurais

veux faire.

Et avec une carte de commande de moteurs pas à pas 2 ou 3 axes du genre de celles utilisées par exemple pour des fraiseuses numériques ? Il suffit d'envoyer des commandes en G-CODE à la carte. Il y en a des pas chères sur eBay. Ca fonctionne via le port parallèle en général.

Reply to
PovTruffe

PovTruffe a présenté l'énoncé suivant :

Ah ça peut m'intéresser ça. La seule chose c'est que je ne veux pas de PC car ça m'embête de laisser un PC allumé pour une tâche aussi basique. Je vais me renseigner sur ces cartes G-CODE et leur protocole de communication.

Reply to
val

"val" a écrit

=========== pourtant, si tu sais programmer un "PIC basic" , aussi simple d'utiliser un PIC vierge (20 Mhz, 50 pour certains )

Reply to
maioré

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.