Besoin d'aide pour faire fonctionner 2 stepper en meme temps sur arduino

  • Auteur de la discussion fick
  • Date de début
F

fick

Nouveau
Bonjour a tous,

Je vous explique mon problème je suis en cours de fabrication d'une bobineuse, (1 nema23 et 1 nema17, un A4988 et ST6600 via arduino), est je n'arrive pas a faire fonctionner les 2 steppers en même temps, mais j'y arrive l'un après l'autre.

Voici mon code :

quelqu'un pourrait il m'aider ? sachant que les branchement sont correct

Merci d'avance !

Fick
 
P

psemel

Ouvrier
bonjour,

j'ai la même chose sur une autre application, mais cela n'est pas gênant pour moi.

il faut réduire le nombre de pas du guide et de l'axe. en faisant une boucle pour arriver aux valeurs.
Void loop()

int a=-1;
I=0;
J=-2350;
for(i=I i=J step a)
{
run stepper guide (i);
run stepper axe (10000000/i);
}
int a=1;
I=-2350;
J=0;
for(i=I i=J step a)
{
run stepper guide (i);
run stepper axe (10000000/i);
}
fin de boucle
 
G

gégé62

Compagnon
je n'ai pas tout analysé dans les réponses déjà faites, mais à tout hasard, ne serait-ce pas un problème lié au timer interne du micro, qui est utilisé pour gérer le PWM, et qui ne peut pas "faire 2 choses en même temps".?
 
F

fick

Nouveau
Alors avant tout merci pour vos réponses :-D. Une partie du problème a été résolu, "runToNewPosition" est bloquant( tout comme la fonction step de la librairie arduino) c'est a dire que tant que le stepper n'a pas atteint la position le programme est en pause, donc j'ai changé de fonction avec " .move".
Et pourquoi j'utilise la librairie accelstepper ? il y a plus de fonctions et elle permet de gérer l’accélération, cela permet d'avoir une vitesse plus importante avec les steppers, car si on met une vitesse de 8000 steps directement le moteur "grogne", alors que si l’accélération est par exemple de 6000 et la vitesse de 8000 il atteint cette vitesse sans problème mais par "étape".

Sinon j'ai réussi a faire fonctionner les 2 steppers mais celui de l'axe grogne au bout de 2seconde, voici mon code ?

 
N

nopxor

Compagnon
As-tu vérifié le réglage du courant du driver ? Ainsi que le câblage est bien correct ?
Est-ce que tu arrives à le faire tourner correctement seul ?
Es-tu sûr de l'alimentation ?
C'est lequel qui grogne, Axe ou guide ? 17 ou 23 ?

La pin 1 est utilisée pour chaque moteur.
C'est bizarre.
 
Dernière édition:
F

fick

Nouveau
oui j'ai verifié le réglage du courant du driver, c'est le nema 23 donc l'axe, et il ne grogne pas quand il fonctionne seul. pour l'alimentation j'ai une alimentation 12V 18A pour le nema 17 et une Alim 36V 4A pour le nema 23 donc pas de problème de ce coté. Pour le pin 1, en fait ce n'est pas le pin 1, c'est pour dire que les steppers son contrôler par un driver !

ÉDITE: Sinon toujours le même problème le nema 23 (Axe) se met a grogner et ne fonctionne plus au bout de 2 seconde alors que le nema17 (Guide) fonctionne parfaitement. Je suis sur que c'est du au programme a cause du ".run" mais je ne sais pas le corriger .
 
Dernière édition:
N

nopxor

Compagnon
la fonction moveTo attend une variable de type long (32 bits) donc comprise entre -2 147 483 648 et 2 147 483 647.
Or tu as un argument égal à 10 000 000 000.
Il y a débordement. :sad:
 
N

nopxor

Compagnon
Tes boucles "tant qu'il reste du chemin à parcourir" n'ont pas vraiment lieu d'être puisque la fonction run est appelée pour cela.
En plus elles sont pas mal imbriquées...
 
F

fick

Nouveau
Avant tout désolé pour le temps de ma réponse j’ai été occupé ce week-end.


Nopxor : merci pour le long, c'est corrigé mais le problème est toujours là !


Et je sais pas comment faire autrement pour les boucles, en gros j'aimerai pouvoir faire tourner l'axe X fois et lorsque c'est fini, guide arrête de faire des aller-retour (-1800 jusque 0, 0 jusque -1800, ...)


De plus, je viens de voir que si j'utilise la fonction runToNewPosition, le stepperGuide bouge plus vite et en faisant moins de bruit. que si j'utilise move. La fonction move n'utilise pas la gestion de l’accélération, j'ai l'impression, rien trouver dans la référence ?


Sinon j'ai la solution de facilité utiliser 2 arduino 1 pour chaque moteur, mais je trouve cela un peu bête d'avoir un microcontrôleur avec autant de pin et de l'utiliser que pour un stepper ... C’est ce que je fais en attendant d’avoir trouvé mieux
 

Sujets similaires

F
Réponses
6
Affichages
25 595
fraiddy
F
fauxjetons
Réponses
96
Affichages
71 922
hercule.toto
hercule.toto
V
Réponses
62
Affichages
39 192
Dardar88
Dardar88
taratata
Réponses
4
Affichages
4 162
taratata
taratata
Haut