bonjour,
je voudrai savoir si il est possible de connaitre via une variable la position en temps réel d'un moteur pas à pas
hello
oui, avec "accelStepper", mais attention, le moteur ne doit pas louper un ou plusieurs pas.
cette fonction:
/// The current motor position.
/// \return the current motor position
/// in steps. Positive is clockwise from the 0 position.
long currentPosition();
d'autres librairies le permettent peut être aussi...
merci réponse rapide
mon cerveau va moins vite
le but est de pouvoir envoyé en temps réel la position d'un moteur sur le port série
mais la je bug
j'arrive à envoyer if (incomingByte == '1') stepper.runToNewPosition(reglage1PosMot1);mySerial.print(reglage1PosMot1);
la position defini dans une variableint reglage1PosMot1 = 500 ;
je renvoi donc 500 ,mais j'ai aussi des actions manuelles dans mon programme et je n'arrive pas à créer une façon de lire la position actuelle si elle à été modifié pourtant elle doit etre stockée quelque part puisque le programme arrive toujours à remettre mon moteur à la bonne position...
Bonjour lolo8222
Si tu envoies ça sur le port série, tu envoies la valeur de la variable reglage1PosMot1
.
Tandis que si tu envoies mySerial.print(stepper.currentPosition());
, c'est la position réelle du moteur à l'instant de la commande.
Détail de stepper.currentPosition()
Plus de détails sur accelStepper,
et d'autres ici.
Mets le programme que tu as déjà fait, ça peut aider.
Cordialement
jpbbricole
merciiiii
Non pas dans le monde réel, peut-être dans celui des doux rêveurs.
Pour avoir la position instantanée, il faut un capteur sur l'arbre du moteur qui revoie la position en temps réel.
Tout ce qu'un programme ou une bibliothèque peut te donner, c'est la position "théorique".
Le programme est incapable de te dire si le moteur a raté des pas.
Si on se place dans le monde réel, où le moteur peut sauter des pas, avoir cette variable serait redondant avec ce que tu connais déjà puisque c'est toi qui donnes les ordres au moteur pas à pas.
merci pour vos reponses, maintenant j'ai compris comment faire
effectivement j'avais bien compris comme a dis dfgh :
Bonsoir 68tjs
Ce n'est pas exact, il n'y a pas forcément redondance, Il y a un temps entre l'ordre de mouvement et la fin de ce mouvement, d'où l'intérêt de "lire" la position actuelle, en temps réel, d'où l'intérêt de la commande stepper.currentPosition()
qui peut être lancée n'importe quand.
Si ton moteur perd des pas c'est que son driver est mal réglé ou que ton programme a des défauts.
Si l'on veut vraiment "assurer" on utilise des servo, pas un simple moteur pas à pas.
Cordialement
jpbbricole
ou un dur mécanique...
Et si ma tante en avait .....
Si tout ce qui ne devrait pas se passer ne se passait jamais, ce serait une grande nouveauté.
Il y a le monde réel et celui des doux réveurs, je choisi le premier.
Bonsoir 68tjs
C'est peut-être une erreur, ce qui te manque, visiblement, c'est de la pratique, pratique qui te permettrai de te rendre compte que ta réalité, ton monde de bisounours, sont loins de la réalité.
L'essentiel est que le demandeur ait été satisfait des diverses réponses.
Cordialement
jpbbricole
oui merci
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.