Faire tourner un moteur PAP en même temps que faire autre chose

Hellooooo :smiley:

Dans le cadre d'un bricolage d'une bobineuse pour rebobiner une bobine de flipper spécifique, j'ai fais un programme qui permet de :

  • Afficher le nombre de tours, via une cellule infra rouge
  • Afficher la vitesse de rotation (calculée sur le temps entre chaque passage devant la cellule IR, en jouant avec la fonction millis).

Ca marche plutôt pas mal et je pourrais m’arrêter là du fait que j'ai qu'une bobine à faire, je guiderais le fil à la main.

A titre expérimental, j'ai acheté un petit motoréducteur pas à pas avec la carte driver , 5e livré sur ebay.

J'arrive à faire tourner le moteur avec la librairie stepper.h .

Seulement voilà, si par exemple je veux faire tourner le moteur de x pas à chaque tour (on imagine que la sortie est reliée à une tige filetée qui permet de faire déplacer un guide fil), cela fausse ma mesure de vitesse.

J'ai l'impression que pendant que le moteur fait ses pas, le programme n'avance pas . Ce qui fait que ca rallonge la période mesurée et donc diminue la valeur de vitesse affichée.

J'ai vu un autre sujet d'un membre qui voulait faire tourner deux moteurs en même temps et non un après l'autre, et qu'i lavait reçu comme réponse qu'avec stepper.h , ce n'était pas possible, mais de s'orienter vers AccelStepper .
Je me suis dis que ca permettait que le programme fasse autre chose pendant que le moteur tourne avec cette librairie.

Je suis parvenu à faire tourner le moteur avec AccelStepper, bien que je n'ai pas trouvé la commande permettant de tourner de x pas, seulement des positions cibles, mais cela ne résout pas le problème de mesure de vitesse.

Je pense que la cause reste la même, le programme ne continue pas tant que le moteur fait ses pas.

Y a-t-il une possibilité de faire tourner un moteur pendant que le programme continue d'avancer ?

Merkiiii :slight_smile:
Couin

Hello !

Merci pour cette réponse rapide :slight_smile:

Cependant ca a l'air d'être d'un niveau qui n'est pour le moment pas à ma portée, je suis plutôt débutant lol

Pour les blocs, un bloc de commande de moteur ne bloquerait pas le déroulement du programme pendant son exécution ? J4ai du mal à imager la chose.

Merci :slight_smile:

pour pas citer les nuls, tu peux faire une fois 200 pas mais tu peux aussi faire 200 fois un pas.

Autrement dit, si tu écris ton programme pour que le moteur fasse 200 pas, il est bloqué durant les 200 pas, puis le programme passe à la suite.

Tu peux coder de manière a ce que le moteur fasse un pas, puis autre chose de rapide puis encore un pas, puis encore autre chose et ainsi de suite.

Si les actions sont courtes, tu ne te rendra compte de rien

Ca sert à quoi, le capteur, avec un moteur PAP?

@Jambe : C'est aussi une idée, surtout qu'en effet, les autres opérations doivent être très rapide donc ca ne devrait pas être perceptibles. Il suffirait de rajouter une variable qui s’incrémente à chaque loop pour compter le nombre de 1 pas réalisés.
Bon ,j'espère ne pas devoir prendre de chewing gum lol

@pepe : Ok je vois mieux le truc déjà :slight_smile: On joue sur les cycles d'exécution du programme.

@kayel : Le capteur sert à mesurer la rotation de la bobine (cet axe est entrainé par un moteur différent , genre perceuse sans fil pour le moment lol), le moteur pas à pas serait pour l'avance d'un guide fil à bobiner.
Evidement, si l'axe était entrainé par un autre moteur PAP, le capteur serait inutile.

Couin:
Evidement, si l'axe était entrainé par un autre moteur PAP, le capteur serait inutile.

Oui et non, tu pourrais faire une boucle fermée et vérifier que la rotation ai été correctement réalisée. En autres, tu pourrais détecter un éventuel saut de pas et/ou blocage du moteur

Oui, je parlais plus d'un point de vue théorique :slight_smile: