Fonctionnement de moteurs pas-à-pas

Dans le cas d’un projet de TIPE (oraux de classe préparatoire) je cherche à étudier le rayon de giration du fauteuil roulant miniature avec deux moteurs pas à pas. Ayant peu d’expérience je rencontre des soucis pour faire avancer la maquette. Premièrement mes deux moteurs n’avancent pas en même temps, en me renseignant j’ai vu que l’algorithme de Bresenham pouvait résoudre ce problème. Mais je ne le comprends pas très bien… Pouvez vous m’éclairer sur cette algorithme svp?
Cependant mon problème majeur est que mes moteurs n’entraînent pas mes roues. Est ce que cnest un problème de programme ? ou de mes moteurs ? Ce sont des moteurs classiques présents dans un kit de démarrage arduino .

mon programme :


#include <Stepper.h>

// pour un moteur de 200 pas par tour et brancher sur les broches 2, 3, 4, 5
Stepper moteur1(200, 2, 3, 4, 5);
Stepper moteur2(200, 8,9,10,11);

void setup()
{
    moteur1.setSpeed(100); // 100 tours par minute
    // (rappel : ici le moteur fait 200 pas par tour,
    // on fera donc 20000 pas par minute)
    moteur2.setSpeed(100);
}

void loop()
{
    moteur1.step(1000);
    moteur2.step(1000);
    
}




Fatalement puisque tu les commandes l'un après l'autre.

Si par contre, tu fais comme ci-dessous ils tournerons en même temps

void loop()
{
    for(int i= 0; i<1000; i++){
        moteur1.step(1);
        moteur2.step(1);
    }
}

Tu dis:

Mais tu dis aussi

donc j'en déduis que tu as vu les moteurs tourner.
S'ils n'entraînent pas les roues, c'est un problème mécanique, ou électrique?
Qu'elle source d'alimentation utilises-tu pour faire tourner les moteurs?

en prenant la bibliothèque accelStepper vous pourrez demander aux 2 moteurs de tourner sans que ce soit un appel bloquant

1 Like

J'ai corrigé le titre de ce fil de discussion pour le rendre intelligible.

oui en effet je vois les moteurs tourner. Je ne sais pas si c’est un problème mécanique ou électrique, comment puis je le savoir ? J’ai essayé de prendre des moteurs de mes camarades qui sont similaires aux miens mais j’ai le même résultat.
Comme source d’alimentation, ma carte est relié à l’ordinateur c’est tout.

oui j’ai essayé de me renseigner sur cette bibliothèque mais pas facile de tout comprendre :grimacing:

il y a des exemples... il faut les étudier

1 Like

Le 28BYJ48 est un moteur qui a en général 2048 pas par tour. Si le programme fonctionnait, quand tu demandes un tour, il n'en frait qu'un dixième environ.

Voir ma page
http://arduino.dansetrad.fr/CoursPasAPas/28BYJ-48.php#Cablage
il est probable qu'il y ait une inversion entre 3 et 4. Dans ce cas le moteur ne tourne pas correctement.

ou avec QuickStep, sachant que c'est en français, et que tu peux avoir tout l'aide que tu souhaites (faut bien que je passe ma pub!).

1 Like

Bonsoir ninis29

Je confirme ce qu'a dit @vileroi, souvent il faut croiser la paire de fils du milieu ainsi:
2,4,3,5 et 8,10,9,11.

Regardes ici.

Cordialement
jpbbricole

1 Like

merci !!

merci !!!

Sans oublier QuickStep en effet !!!!

1 Like

Re Bonjour un autre soucis est apparu, au début tout marchait bien les moteurs tournaient bien en même temps. Et d’un coup ça comment à clignoter rouge et ça bip. Que cela signifie t il ?


// pour un moteur de 200 pas par tour et brancher sur les broches 2, 3, 4, 5
Stepper moteur1(2048, 2, 4, 3, 5);
Stepper moteur2(2048, 8, 10, 9,11);

void setup()
{
    moteur1.setSpeed(100); // 100 tours par minute
    // (rappel : ici le moteur fait 200 pas par tour,
    // on fera donc 20000 pas par minute)
    moteur2.setSpeed(100);
}

void loop()
{
    moteur1.step(1000);
    moteur2.step(1000);
  //for(int i= 0; i<1000; i++){
  //      moteur1.step(1);
  //      moteur2.step(1);
  //  } 
}

c'est qui 'ça' ??

votre petite alim de breadboard est peut être trop limitée pour les 2 moteurs PàP (chaque moteur tire jusqu'à 240mA c'est peut être beaucoup)

La vitesse est trop grande. Avec les moteurs 12V qui sont plus performants, j'arrive à 17tr/mn. Il est probable que tu ne puisses pas dépasser les 15tr/mn

Si on va trop vite, le moteur vibre mais ne tourne pas.

A prt les moteurs, il n'y a rien qui peu faire du bruit dans le montage. C'est les moteurs qui reçoivent des signaux et qui vibrent sans tourner. C'est le bruit que tu entends.

le rouge doit venir des leds qui sont sur les plaquettes ULN2003. Elle clignotent pour indiquer quelle phase est alimentée. Si on va suffisamment vite, on ne voit pas le clignotement et les 4 leds paraissent allumées fixe. Si on va lentement on a une espèce de chenillard.


Pour rigoler: 100 tr/mn en sortie, avec un réducteur 1/64 ferait une vitesse de rotation de 6400tr/mn. Cela fait beaucoup. Note: en sur vitesse (protocole avec accélération et à vide), j'arrive à faire tourner la sortie à 64tr/mn. ce qui fait 4000tr/mn pour le moteur lui même.
La datasheet pour un moteur 5V semble dire 17tr/mn en démarrage direct à vide (ce que tu fait, mais tu es en charge) et 25tr/mn en sur vitesse.


Le courant est plus important à l'arrêt ou en faible vitesse. Ce serait vu avant.

Pour l'alimentation je ne sais pas, la carte arduino, peut alimenter un moteur et le faire fonctionner correctement. Mais pour brancher le 2e moteur, je branche une carte alim sur la breadboard que je relie à une prise secteur (avec l'adaptateur fourni) et là ça ne fonctionne plus... c'est surement moi qui branche n'importe comment, je ne sais pas

il se peut que ce composant

ne fournisse pas assez de courant.

vérifiez aussi que les cavaliers sur les pins jaunes sont sur 5V et pas sur 3.3V

Les cavalier étaient en effet sur 3.3V (je ne savais pas que ces trucs étaient amovibles), à quoi servent-t-ils exactement ?

les cavaliers servent à définir la tension de sortie des pins qui sont plantée dans le rail rouge et bleu sur le côté de la breadboard. Assurez vous que la pin - (GND) est dans le rail bleu et la pin + (donc les 5V ou 3.3V) dans le rail rouge. (faut mettre le composant du bon côté de la breadboard)

vous pouvez avoir 3.3V d'un côté et 5V de l'autre par exemple si vous avez besoin des 2 tensions dans votre montage

ça fonctionne mieux en 5V ?



voici mon montage, un seul des deux drivers est allumé, c’est possible que la carte ne fournisse pas assez de courant en effet.