[Programmation] Asservissement position moteur pas à pas.
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

Asservissement position moteur pas à pas.



  1. #1
    Osmose52

    Question Asservissement position moteur pas à pas.


    ------

    Bonjour tout le monde,

    Etudiant ingénieur, je souhaite asservir en position un moteur pas à pas bipolaire à l'aide d'une carte Arduino Uno.
    J'ai vu qu'il existe déjà quelques schéma pour l'asservir de ce type :
    Nom : AsservissementMoteur.PNG
Affichages : 2266
Taille : 31,2 Ko

    Cependant j'ai plutôt l'impression que ce principe permet d'asservir le moteur en vitesse...
    Pour mon projet j'ai besoin de l'asservir en position : Pouvoir le faire bouger d'un nombre précis de pas (à une vitesse très lente).
    Me conseillez vous d'ajouter un codeur pour connaitre la position du moteur ? Est-il possible d'utiliser un module de l'Arduino Uno pour réaliser cette fonction?

    Merci d'avance pour l'attention que vous porterez à mon post !

    Bonne journée à tous!

    Valentin

    -----

  2. #2
    DAUDET78

    Re : Asservissement position moteur pas à pas.

    Un moteur pas à pas bouge du nombre de pas (dans la mesure où il ne va pas trop vite ou qu'il n'a pas un couple de freinage trop grand) qu'on lui demande. Donc il n'y a jamais de codeur de position en sortie d'un pas à pas .
    J'aime pas le Grec

  3. #3
    jiherve

    Re : Asservissement position moteur pas à pas.

    Bonjour,
    deux solutions:
    Le moteur entraine un mécanisme qui possède un zéro, c'est à dire un capteur capable de déterminer une position initiale, alors après avoir rejoint le zéro il suffit de compter les pas pour rallier la position désirée..
    Le moteur est muni d'un capteur de position absolu(optique, potentiométrique, électromagnétique), sur un tour ou plus et la cela revient au même, on compte les pas pour rallier la position désirée.
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    Antoane
    Responsable technique

    Re : Asservissement position moteur pas à pas.

    Bonjour,

    En plus de ce qui a déjà été écrit :
    Cependant j'ai plutôt l'impression que ce principe permet d'asservir le moteur en vitesse...
    Ce schéma n'est qu'un circuit de contrôle, il fonctionne en boucle ouverte.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. A voir en vidéo sur Futura
  6. #5
    Osmose52

    Re : Asservissement position moteur pas à pas.

    Hello Daudet,

    Merci pour ta réponse rapide !
    Ok c'est bon à savoir merci bien ! Du coup tu penses qu'avec le schéma que j'ai poster il est possible d'asservir le moteur en position?
    A priori je vais utiliser un moteur de précision 2°.
    Donc imaginons que je veuille faire bouger le moteur de 10° dans le sens horaire:
    Je lui transmet simplement 5 coups d'horloges avec le CW à 1 ?

    Bonne journée,

    Valentin

  7. #6
    Osmose52

    Re : Asservissement position moteur pas à pas.

    Bonjour Jiherve !

    Merci pour ta réponse,
    Mon moteur entraine un mecanisme qui ne possède pas de zéro.
    Du coup je vais plutôt m'orienter sur la solution avec le capteur de position absolu. Il faut donc que je le rajoute en sortie de mon moteur ?
    Comment faire par la suite pour faire tourner de moteur disons par exemple de 10 pas ? Cela se commande via le schéma que j'ai poster sur mon premier message ?

    Je ne suis pas du tout familier avec les moteurs, merci de votre patience

    Bonne journée !

    Valentin

  8. #7
    DAUDET78

    Re : Asservissement position moteur pas à pas.

    Citation Envoyé par Osmose52 Voir le message
    'avec le schéma que j'ai poster il est possible d'asservir le moteur en position?
    Non , non et non . Tu positionnes le moteur !
    Citation Envoyé par Osmose52 Voir le message
    Mon moteur entraine un mecanisme qui ne possède pas de zéro.
    Ca veut dire quoi ?
    Tu peux donner une photo de ta mécanique ? Ca sert à quoi ?
    Du coup je vais plutôt m'orienter sur la solution avec le capteur de position absolu.
    Puisqu'on te serine qu'un moteur pas à pas n'a pas besoin de codeur ..... tu as la tête duraille !
    J'aime pas le Grec

  9. #8
    Murayama

    Re : Asservissement position moteur pas à pas.

    Bonjour!

    Donc il n'y a jamais de codeur de position en sortie d'un pas à pas .
    Mais si mais si!
    Je suis en ce moment sur 2 projets (2 clients différents en plus, ce qui semble montrer
    que ce n'est pas si rare) sur des steppers avec feedback. En plus, en googlant "stepper
    motor with encoder feedback", on trouve pas mal de références, dont la première:

    http://www.applied-motion.com/videos...-motor-systems

    En plus, ce n'est pas vraiment nouveau, la page date de 2012.

    Puisqu'on te serine qu'un moteur pas à pas n'a pas besoin de codeur ..... tu as la tête duraille !
    Ce n'est pas la peine d'insulter ou d'humilier parce que les steppers avec feedback, ça
    existe. Et même si ça n'existait pas, d'ailleurs. Ça permet de vérifier que des pas n'ont
    pas été sautés. Et ça permet aussi de connaître la position au démarrage aussi, sans avoir
    à faire un aller-retour à une butée ou un capteur optique. Pour info, il existe des
    encodeurs multitours, donc utilisables pour connaître la position exacte d'un mobile sur
    une vis, par exemple, qui donnent la position angulaire du moteur + à combien de tours
    on est de la position 0.

    A priori je vais utiliser un moteur de précision 2°.
    Il faut compter les pas. Mais par contre, il faut savoir exactement où on est.
    Je m'explique: le steper a 4 états. Du moins le schéma que vous utilisez montre un
    bipolaire. On peut les noter 0, 1, 2, 3. Si vous positionnez le moteur à la main
    n'importe où, vous allez le mettre sur une position aléatoire correspondant à un
    des états électriques ci-dessus. Si vous ne connaissez pas la position et que
    vous imposez un des états électriques, alors le permier pas du moteur se fera
    dans un sens imprévisible, de +/- 0, 1 ou 2 pas. Pour les pas suivants, tout ira
    bien puisque l'état du moteur correspondra à celui du logiciel.
    Donc comme votre système "ne possède pas de 0", l'encodeur est certainement une
    bonne idée. Après, il va falloir savoir si vous avez besoin d'un multitours ou
    non, mais sans plus de détails, je ne peux pas vous aider.

    Dernier point: il existe des drivers plus modernes que ce que vous utilisez, avec
    diodes intégrées, tout en un seul chip.
    J'utilise souvent le DRV8848 de Texas (2 moteurs DC ou 1 stepper). Il permet de
    contrôler (ou non) le courant, a aussi un contrôle de surchauffe, etc...
    Attention: je ne dis pas qu'il convient! Vérifiez avec votre moteur.

    Pascal

  10. #9
    polo974

    Re : Asservissement position moteur pas à pas.

    pour le pilotage (coté réalisation), les fous d'imprimantes 3d ont bien débroussaillé le sujet, il suffit de chercher "pololu a4988 arduino" (pour de petits modèles de moteur (12 à 24V 1A si on ne veut pas tout fumer (même si la doc dit 2A)) ...

    pour le feed back, et bien oui, il y a parfois des codeurs optiques ou autres derrière un stepper (qui devient sans le savoir un moteur synchrone asservi). ça permet de ne pas (trop) louper de pas (mais c'est moins dans le diy, plus dans l'industrie et dans des rapports de recherche qu'on retrouve des infos récentes, là-dessus).

    un feed-back en position absolue est coûteux si on cherche de la vitesse et/ou de la précision.

    (j'en profite pour redonner un coup de gueule contre les docs de moteurs pas à pas:
    on n'a jamais le KV (coeff vitesse de rotation sur tension d'alim) qui permet de facilement évaluer la tension d'alim minimale pour une vitesse donnée ou d'expliquer à un gars qui alimente des pap en 12V et s'étonne de perdre des pas quand il monte en vitesse.
    Bon, il faut aussi tenir compte du courant, de la résistance, de l'inductance, mais sans ce paramètre, on est dans le black...)
    Jusqu'ici tout va bien...

  11. #10
    antek

    Re : Asservissement position moteur pas à pas.

    Citation Envoyé par polo974 Voir le message
    . . . (qui devient sans le savoir un moteur synchrone asservi) . . .

    . . . on n'a jamais le KV (coeff vitesse de rotation sur tension d'alim) . . .
    Ben non, tout comme un PAP sans retour n'est pas un moteur synchrone non asservi.

    Je vois pas comment l'appliquer à un PAP.
    C'est la fréquence des impulsions qui détermine la vitesse et le courant pendant l'impulsion qui détermine le couple.

  12. #11
    Murayama

    Re : Asservissement position moteur pas à pas.

    Bonjour!

    ça permet de ne pas (trop) louper de pas
    En l'occurrence, ça permet de ne pas louper de pas du tout.

    Pascal

  13. #12
    DAUDET78

    Re : Asservissement position moteur pas à pas.

    Citation Envoyé par Murayama Voir le message
    Ce n'est pas la peine d'insulter ou d'humilier parce que les steppers avec feedback, ça
    existe.
    Pour ma culturation, tu peux donner un lien WEB sur ce produit ?
    J'aime pas le Grec

  14. #13
    Murayama

    Re : Asservissement position moteur pas à pas.

    Re!

    un feed-back en position absolue est coûteux si on cherche de la vitesse et/ou de la précision.
    Tout dépend de ce que vous appelez coûteux. Un TW11 (iC-Haus, le plus bas de gamme)
    échantillonne la position absolue à 4000 Hz (@ 10 bits). Si vous voulez être certain de
    ne rien louper, vous ne pouvez pas avoir un moteur qui tourne à plus de 120 000 rpm. Mais
    dans le cas général, on a de la marge non? Il coûte dans les 2~3 euros. Auxquels il faut
    ajouter un aimant.

    Pour la précision du plus bas de gamme, il se trouve que c'est dans les +/- 1 lsb, donc
    360 / 1024 degrés. Ce qui est bien au delà de ce qui est nécessaire pour toutes les
    applications amateur.

    Pascal

  15. #14
    polo974

    Re : Asservissement position moteur pas à pas.

    Citation Envoyé par antek Voir le message
    Ben non, tout comme un PAP sans retour n'est pas un moteur synchrone non asservi.

    Je vois pas comment l'appliquer à un PAP.
    C'est la fréquence des impulsions qui détermine la vitesse et le courant pendant l'impulsion qui détermine le couple.
    Et pourtant, un pap n'est qu'un moteur synchrone avec une caisse de pôles.

    Et comme tout moteur électrique à aimant permanent, il y a une fcem qui augmente avec la vitesse, cette fcem fois le courant donne (à quelques pertes près) la puissance fournie par ce moteur.

    sans ce kv, on ne peut pas connaître à priori la tension d'alim nécessaire pour faire tourner le pap à une vitesse donnée.


    sinon, le "(trop)" entre parenthèse était dans le sens que si on a un glissement du moteur (trop forte accélération ou charge), on peut toujours rattraper le coup grace au feed-back, même si à ce moment, on peut ne plus être en phase avec d'autres axes (le temps que l'asservissement remette tout le monde d'accord).

    pour le capteur absolu (la vie ne s'arrête pas après un tour moteur), je pensais à un capteur de mouvement linéaire, sur disons 250mm, avec une précision de 5 microns, soit 16 bits de résolution environ (on est en droit de chipoter sur 1 ou 2 bits, mais ça ne change pas trop la donne). j'ai parlé d'un capteur absolu, car il semblait que le truc de ce fil ne pouvait pas faire un zéro puis utiliser un capteur incrémental.

    dans le cas d'un capteur linéaire incrémental, j'ai vu un capteur hall biphasé qui survolait une règle magnétique alternant nord/sud au pas de 2mm permettant d'obtenir les 5 microns de résolution. mais l'ensemble coûtait plus cher que le moteur.

    sinon, je suis preneur de capteur optique 32*32 environ assez rapide et pas cher afin d'en faire un capteur linéaire absolu (en l'associant à un règle optique encodée gray par exemple). il y a eu un temps des trucs comme ça dans les souris optiques, mais maintenant tout est plus qu'intégré...
    Jusqu'ici tout va bien...

  16. #15
    nornand

    Re : Asservissement position moteur pas à pas.

    Citation Envoyé par DAUDET78 Voir le message
    Pour ma culturation, tu peux donner un lien WEB sur ce produit ?
    http://jmcmotion.en.made-in-china.co...-RoHS-OEM.html

  17. #16
    tututito

    Re : Asservissement position moteur pas à pas.

    Hello Osmo52

    Je suis également étudiant en ingénieur et j'aurais aimé connaitre les solutions que tu as choisies.

    Je dois concevoir un pousse-seringue. J'ai donc besoin d'une avance très lente du moteur. Je dois en plus pouvoir connaitre la position "0" de mon poussoir.

    Je t'ai également envoyé un message privé,

    Merci

Discussions similaires

  1. Asservissement en position
    Par neneh dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 23/09/2014, 10h45
  2. asservissement d position d mcc par pic
    Par invitefce30e7b dans le forum Électronique
    Réponses: 1
    Dernier message: 24/04/2009, 21h23
  3. Réponses: 2
    Dernier message: 08/04/2008, 11h33
  4. Asservissement de position d'un moteur par PIC
    Par inviteeaf9391c dans le forum Électronique
    Réponses: 7
    Dernier message: 01/06/2007, 13h37
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...