Comment diviser les pas d'un moteur pas à pas

Bonjour
je suis en train de terminer ce projet https://www.instructables.com/Equatorial-Mount-for-DSLR/
sauf que le code que le membre a mis ne me convient pas car le moteur ne tourne pas en permanence :grinning: :wink:
donc j'ai fait mon propre code, mais malgré ça le moteur fait encore des pas en entier (toutes les 12 secondes environ) et non les 0,096 pas
voici mon code

#include <AccelStepper.h>

AccelStepper stepper1(AccelStepper::FULL4WIRE, 4, 6, 5, 7);

const int bouton1 = 2; //marche avant rapide axe AD
const int bouton2 = 3; //marche arrière rapide axe AD

void setup() {

  pinMode (bouton1, INPUT_PULLUP);
  pinMode (bouton2, INPUT_PULLUP);

  stepper1.setMaxSpeed(50);
 
  stepper1.setSpeed(0.096);

 }
void loop() {

  if (digitalRead(bouton1) == LOW) {
    stepper1.setSpeed(50);
  }
  else  if (digitalRead(bouton2) == LOW) {
    stepper1.setSpeed(-50);
  }
  else {
    stepper1.setSpeed(0.096);
  }
  stepper1.runSpeed();
}

Est-ce que quelqu'un d'entre vous à une solution pour diviser les pas
le monteur utilisé, c'est un 28BYJ 48
et je suis sur un arduino uno
sinon quel bibliothèque dois-je utiliser pour avoir les pas les plus petits possibles ???
Merci pour votre aide :wink:
cdt

Je n'ai pas encore vu de driver pour moteur bipolaire permettant d'utiliser autre chose que les pas entiers et les demis-pas. Le programme ci dessus utilise les pas entiers, il est donc possible de passer en demi pas en remplaçant FULL4WIRE par HALF4WIRE. Cela fait des pas 2 fois plus petits. C'est tout.

Pour avoir des pas plus petits, on peut utiliser un réducteur mécanique, ou faire un demi pas toutes les 62,5s

1 Like

Ok merci
c'est toujours mieux que des pas en entier (les grands pas)
cdt

Une autre solution est d'acheter un driver plus sophistiqué que le ULN2003, capable de faire une commande en micro-pas. Ca se commande, en général, avec deux signaux : step et dir. A chaque front (en général montant) du signal step, le moteur fait un micro-pas. Veiller alors à prendre une bibliothèque qui gère ces signaux en sortie.

Je suis curieux de connaitre le nom d'un driver permettant cela.

Bonjour
ce serait le quel driver ???
J'ai cherché, mais pas trouvé
cdt

Faire une recherche sur un moteur Internet, avec les mots clés "stepper motor" "microstep" "driver". Vous allez en trouver des dizaines. par exemple :
http://www.leadshine.com/UploadFile/Down/DM556m.pdf
On trouve ça à une quinzaine d'euros sur ebay. Je ne comprends pas trop pourquoi Vileroy se pose cette question. Parce que j'ai appellé "step" et "dir" les signaux de commande, alors que souvent on les appelle "pulse" et "dir" ?

Mais ce driver, c'est pour les moteurs type NEMA qui ont 4 fils tant dis que le 28 BYJ 48 à 5 fils
cdt

Bonjour

Est-ce que quelqu'un d'entre vous à une solution pour diviser les pas
le monteur utilisé, c'est un 28BYJ 48

Je ne connais pas grand chose aux moteurs pas à pas et serai heureux de découvrir l'existence d'un driver économique (<15€) permettant de piloter en micro-pas un moteur pas à pas unipolaire comme celui utilisé par @astronomy

Bonjour
Il est très facile de transformer le 28BYJ 48 en bipolaire, il y a juste une piste à couper, il y a plein d'info sur le net.
Ainsi, on peut utiliser les drivers A4988

Cordialement
jpbbricole
.

1 Like

Merci @jpbbricole !

Pas d'accord, il n'y a pas de piste à couper. C'est inutile, si le moteur est alimenté en 0/Vcc, le point central avec un montage en pont sera de Vcc/2 quel que soit le cas. Il n'y a pas de ddp ente les deux points milieux des enroulements. On peut donc laisser la connexion, elle ne gêne pas.

Par contre il faut que le driver puisse être réglé sur un courant aussi petit que 70mA qui est le courant maximal admissible pour le 28BJ48 quand on alimente les deux enroulements d'une même phase en série. D'après le schéma de la carte c'est possible, mais je n'ai pas vérifié.

1 Like

Effectivement c'est un moteur à cinq fils, donc les points milieux des deux bobines sont reliés. Soit on peut ouvrir le connecteur sur le moteur pour couper cette liaison entre les deux points milieux, pour brancher en bipolaire, et ça va, soit on ne peut pas, et dans ce cas, oui, il faut soit se limiter au demi-pas, soit changer de moteur. On ne peut pas brancher sur un driver prévu pour du bipolaire un moteur dont les deux points milieux de bobines sont reliés. Autant pour moi je n'avais pas lu la doc du moteur.

Cette affirmation est fausse. J'ai fait l'essai avec un moteur fils et un ampèremètre branché ente les deux points milieux. Quasiment aucun courant ne passe. Dans quel cas cela peut-il poser un problème avec un A4988?

Bonsoir

Je ne comprends plus, alors tout ces gens sont dans l'erreur?
Ou alors la solution de couper la piste est plus simple qu'une solution "alambiquée"?

Cordialement
jpbbricole

Sans y connaître grand-chose je dirais que :

  • cela parait plus logique de couper la liaison entre les points milieux.
    Dans l'absolu ce que dit Vileroy est vrai, mais l'absolu exige des bobinages identiques et ça, c'est la loterie.
  • Les fabricants de moteurs mixtes bipolaires/unipolaires sortent 6 fils et non pas 5, alors qu'ils grattent la moindre réduction de coût. Je pense que c'est parce qu'ils ont une connaissance suffisante des dispersions de fabrication de leurs produits.

Conclusion : Il vaut mieux éviter les prises de tête et sortir 4 fils, ou ajouter un fil pour en sortir 6 et ainsi le moteur restera mixte :grinning_face_with_smiling_eyes:.

2 Likes

Effectivement, c'est extrêmement logique, et je suppose qu'il y en a un ou plusieurs qui ont voulu utiliser le 28BYJ 48 en bipolaire, et que naturellement, si on coupe le fil, on a des enroulements séparés comme un bipolaire. C'est ce que j'ai pensé aussi pendant un certain temps. Mais une fois, je me suis posé la question de l'utilité de couper ce fil. Par la réflexion, je n'ai pas trouvé, et j'ai fait les essais.
Je suppose aussi que celui qui veut transformer son 28BYJ 48 en bipolaire, se renseigne, tombe sur ces pages, fait pareil et comme cela fonctionne, ne se pose pas la question.

C'est le "j'ai toujours fait comme cela et ça fonctionne". C'est vrai, mais on peut faire plus simple et ça fonctionne aussi.

Dans la vie, on fait des tas de choses automatiquement sans réfléchir, et on duplique des comportements. Si ils sont inutiles, et que cela fonctionne, on ne s'en aperçoit pas. Ce n'est pas une erreur, c'est un méthode qui économise le temps. On ne peut pas tout remettre en question. Puisque cela fonctionne!

Un autre exemple de ce genre de situation: beaucoup d'instits pense que pour peindre les 3 couleurs primaires sont le rouge, le bleu et le jaune. On peut prouver que cela ne fonctionne pas en regardant une imprimante qui a bien le jaune, mais qui utilise le cyan et le magenta. C'est très récent que l'on peut acheter un pack de 5 tubes de gouache blanc, cyan, jaune, magenta et noir.

Pendant longtemps on a cru que la terre était plate...

Dans le domaine de l'arduino, combien de personnes initialisent une sortie à 0, alors qu'à la mise sous tension cela se fait automatiquement? Combien de personnes mettent une pin en sortie pour faire du PWM alors qu'analogWrite le fait?

Les bobinages ne sont jamais identiques. Pour un pôle il y en a un au fond et l'autre par dessus, et donc les circuits magnétiques sont différents, et celui qui est à l'extérieur est plus long donc plus résistant. Mais une différence de bobinage va se traduire par un courant dans le point commun qui est faible devant le courant principal. C'est mieux de couper le fil, mais le risque est beaucoup plus faible de le laisser.

Il y a un cas pour lequel couper le fil est indispensable, c'est quand on alimente une bobine et que l'on met l'autre en court-circuit (0V des deux côtés). Le fabricant ne peut pas savoir si ce mode sera utilisé ou pas. Mais le A4988 ne le fait pas. Il est possible qu'avec un autre circuit, on doive couper le fil.

Maintenant, pour l'histoire de coût, je signale que pour deux moteurs de taille identique, celui qui est unipolaire a un couple 30% plus faible. Si on veut minimiser les coûts, il ne faudrait jamais utiliser de moteur mixte en bipolaire.

Et les fabricants ne sont pas fiables dans l'absolu. J'ai cherché pendant un moment d'où pouvait venir le coefficient de 1.96. Il vient de l'opération suivante:
√2 x √2 = 1.4 x 1.4 = 1.96
Quand on se permet de donner un chiffre avec deux chiffres significatif pour faire 4% d'erreur, j'appelle cela une habitude de couper coller! Et je ne fais pas confiance à 100% sur les professionnels (le titanic a été construit par des professionnels, et l'arche de Noë par un amateur).

1 Like

Ok merci
donc je dois le transformer en bipolaire ou pas, car les drivers type DRV8825 ont une entrée 12v
cdt

Bonjour astronomy

Oui, tu transforme en "vrai" bipolaire en coupant la piste.
Le 12 V est pour l'entrée Vmot qui support entre 8.2-45v.

Cordialement
jpbbricole

Va jusqu'au bout de l'information : si on transforme un moteur unipolaire en bipolaire on gagne 30 % de couple ?
Ou est-ce simplement dû au fonctionnement du "pilote" A4988 ?

J'aurai tendance à dire, je ne suis pas un spécialiste, juste quelques souvenirs scolaires, que ce qui compte c'est le produit H = NI (nombre de spires x Courant).
Si le A4988 est capable (et son alimentation en tension) de maintenir le même courant alors oui H est doublé en bipolaire et le champ magnétique B =µo.µr.H l'est aussi.
A la saturation des circuits magnétique près ce qui expliquerait "les petits 30 %" que tu as constaté. Les circuits magnétiques sont dimentionnés sans grosse marge et il n'est pas assuré qu'ils puissent acepter un champ magnétique double.

Mais cela veut aussi dire que le même moteur demandera le double de puissance en mode bipolaire par rapport au mode unipolaire.

Il est important de bien préciser les conditions de fonctionnement et de comparer des choses comparables.
Rien ne se perd, rien ne se créé, tout se transforme.