Go Down

Topic: Moteur pas à pas, Vitesse inférieure a 1 tr/min IMPOSSIBLE ? (Read 1 time) previous topic - next topic

Alexandros_SIDIRAS

Bonjour,

Dans le cadre d'un projet je dois piloter un moteur pas à pas.
J'arrive a le contrôler via la librairie Stepper, jusque là pas de problème.

Seulement la vitesse de mon moteur doit être inférieure à 1 tour par minute (1rpm)

.setSpeed(long whatSpeed) -> Extrait de Stepper.h
La vitesse en rpm doit donc être un long.

Cependant quand je mets un float en vitesse ( moteurPaP.step(1.5) )  cela marche pour les vitesse supérieures ou égales à 1. Une vitesse de 0.6 ne donne rien mais une vitesse de 1.5 fait tourner le moteur. On voit aussi le changement entre une vitesse de 1.5 et 1.6 il n'y a donc pas de prb a ce niveau la.

Comment puis-je permettre une vitesse inférieure à 1 ?

Code de Stepper.h
Code: [Select]

void Stepper::setSpeed(long whatSpeed)
{
  this->step_delay = 60L * 1000L * 1000L / this->number_of_steps / whatSpeed;
}


Lien vers la librairie originale :

Je ne sais pas si changer le long whatSpeed en float ( prb de place surement, inférieur à 1 va marcher ? )
N'hésitez pas à me signaler de quelquonque façon si je me suis mal exprimé à un endroit.

Merci d'avance  :)

J-M-L

en utilisant
Code: [Select]
void step(int number_of_steps); et en gérant vous même quand vous voulez faire 1 pas
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Alexandros_SIDIRAS

#2
Apr 23, 2018, 04:28 pm Last Edit: Apr 23, 2018, 04:51 pm by Alexandros_SIDIRAS
Merci pour votre réponse  :)
Est-il possible de doubler le nb de pas total donné au départ
Code: [Select]
Stepper moteurPaP(nbPas / 2,IN2, IN4, IN3, IN1);

pour que la vitesse du moteur soit divisée par deux ou bien cela aurait une incidence mécanique ?

EDIT :

J'ai testé et cela marche bien, la vitesse est fortement ralentie en divisant par deux (j'imagine par vitesse / 2, a tester)

J-M-L

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Alexandros_SIDIRAS

Oui j'ai divisé par deux le nombre de steps total de mon moteur et cela marche effectivement bien  :)  :)  :)

J-M-L

:)

cela dit ce n'est pas l'approche habituelle - généralement on garde une vitesse plutôt élevée et on fait des petits pas quand on veut - en contrôlant les ordres avec millis()

(vous pouvez jeter un oeil à la librairie AccelStepper si vous voulez plus de flexibilité)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Alexandros_SIDIRAS

Dans mon projet je commande un générateur de tension de 200 000v, et le dV/dt, la vitesse donc doit pouvoir être de 1000v/s a peine. Je me suis rabattu sur le moteur PaP car il est très précis  :)
J'ai commencé a regarder cette librairie, je pense faire des test dans les heures à suivre... Voulez-vous que je vous communique les résultats des tests ?

Merci pour votre aide

J-M-L

l'important c'est de regarder l'angle d'un pas de votre moteur et s'il est capable de micro-pas - au final ce sera votre résolution
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Alexandros_SIDIRAS

J'ai lu l'article concernant les micro-pas, cependant comment mettre en oeuvre ce type de commande, le moteur PaP que j'utilise est https://www.gotronic.fr/art-moteur-28byj-48-5-21213.htm#complte_desc
Je ne sais pas si il est compatible avec ce type de commandes.
Est-ce que il y a une librairie prévue à cet effet ?

J-M-L

Non le 28BYJ-48 est en fait monté en interne comme un moteur unipolaire - pour faire du micro-pas vous avez besoin que les 2 bobines soient séparées et donc d'un montage en bipolaire

Lire les tutos d'eskimon sur les moteurs pour plus de compréhension

il y a des gens qui les ont bidouillés pour en faire des bipolaires si ça vous tente et vous pouvez ensuite le piloter avec un driver A4988 par exemple


attention quand on démonte un moteur c'est jamais simple d'obtenir la même qualité qu'à l'origine dans l'alignement des pièces... Mais bon avec ces moteurs un peu cheap...
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Christian_R

Le moteur pas-à-pas est à l'origine une invention d'horloger, une rotation lente de 1tr/min est heureusement possible ! ;-)
A la base ça sert à faire tourner la petite aiguille.
Christian

Alexandros_SIDIRAS

Bonjour,

J'ai changé mon code et j'ai opté pour la librairie AccelStepper que J-M-L m'avait recommandé.
La vitesse n'est plus limitée etc c'est ce qu'il me fallait ! Je n'utilise pas les microsteps mais des halfsteps et je pense que cela sera suffisant  :)   Grand merci au forum :)

Go Up