Pages: [1]   Go Down
Author Topic: Moteur pas à pas bipolaire qui ne tourne pas correctement  (Read 354 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'essaie de commander un moteur pas à pas.
Je dispose pour cela :J'ai câblé le moteur en suivant la documentation technique ce qui fait que je suis plutôt sur de moi sur le branchement des pôles.
Mon souci est que pendant la phase de test avec un simple petit programme qui demande au moteur de faire 5 tours dans un sens puis 5 dans l'autre ; le moteur fait à peine 1 tour. On a l'impression qu'il reste bloqué sur un pas puis arrive enfin à le franchir pour être bloqué encore sur le suivant. Du coup le moteur est plus un vibreur qu'autres aux choses et le peu de mouvements que j'obtiens n'est pas fluide et est complètement aléatoire (parfois 1 tour ou 2 d'autres fois rien du tout).

Au début j'ai essayé avec une alimentation de puissance de 9 V, puis je me suis dit que la tension était trop faible. J'ai donc essayé avec 18V (maximum acceptable pour le Shield motor) mais le problème est toujours là. J'ai aussi tenté d'inverser un pole puis l'autre puis les deux sans succès . J'ai aussi essayé de mettre la charge sur le moteur (poulie courroie pour entrainer la rotation d'un cylindre) et là c'est encore pire. Ah oui, j'ai aussi essayé de changer la vitesse du moteur ainsi que le nombre de pas demandé.
 Bref je suis vraiment à court d'idées.

Voici le code vraiment basique que j'utilise pour le moment :
Code:
#include <Stepper.h>
 

Stepper moteur(200, 3, 12, 11, 13);
 
void setup()
{
    moteur.setSpeed(200);     
}
 
void loop()
{
    moteur.step(1000);
    delay(500);
    moteur.step(-1000);
    delay(2000);
}

Je pense que c'est un problème technique plus que logiciel (j'obtiens les même resultats avec un programme Labview qui fonctionne avec Arduino) mais impossible de trouver quoi.
Donc si quelqu'un à la moindre idée, je suis preneur.
Si vous avez besoin de plus de détails , il n'y a pas de souci. Toute aide sera d'un grand secours.
Merci d'avance.

Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 84
Rétrofit et conception de machines et d'équipements pour l'industrie et l'agro-alimentaire.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir Dowix,

Je pilote sans problème mes pas à pas avec des drivers Leadshine MS 542 ou similaire et avec l'alim adéquate.
9V, c'est trop peu, mes alim vont de 36 à 60V.

Pourquoi pas faire un test avec linuxcnc pour valider tes moteurs et tes drivers.
Tu commandes via le port // et step et dir.

@+ Pierre
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour Pierre,

Merci pour ta réponse, j'ai regardé les drivers Leadshine. Cela semble être une bonne solution pour augmenter ma tension d'alimentation.
Parcontre j'ai quelques questions:
-Même quand j'ai testé en 18V, mon moteur fesait toujours pas ce que je voulais. Donc est-ce que passer en 36V ou 40V va vraiment changer quelque chose ? Surtout que j'ai fait mes tests à vide.
-J'ai du mal à comprendre comment je vais piloter le driver avec ma carte Arduino .Je ne comprends comment affecter les pins PULS et DIR pour pouvoir controller le nombre de pas voulu. Est-ce que c'est comme un Easy-Driver ? J'indique les les 2 pins arduino que j'ai relié au driver et le soft "fait le reste" ?

Après pour linuxcnc, j'avoue n'avoir aucune connaissance. Je fais ce projet pour la première fois dans le cadre d'un stage et ayant personne derrière, j'ai suivi les divers tuto que j'ai trouvé en essayant de faire au plus simple.
Je suis pret à effectué cette validation, qui semble être des plus utiles, mais pourrais tu me donner en peu plus de détails sur linuxcnc. Le peu que j'ai regardé me parait compliqué (surment car il y a beaucoup d'information).

Merci encore,
Dowix
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1983
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
ca ressemble à une inversion de cablage du moteur.
lui mettre 5-12-24-25000v changera pas grand chose si les fils sont mal connectés.
d'après ce que j'ai pu voir sur d'autres data
les fils sont les suivants
A1--> blanc ou noir
A2--> vert ou jaune
B1--> bleu
B2--> rouge
Stepper(steps, pin1, pin2, pin3, pin4)
donc dans ton cas, tu devrais avoir
Stepper moteur(200, 3, 12, 11, 13);
blanc/noir---vert/jaune---bleu---rouge
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 84
Rétrofit et conception de machines et d'équipements pour l'industrie et l'agro-alimentaire.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour Dowix,

Commene par regarder ton câblage, comme l'indique infobarquee.
Même à une faible alimentation, tu devrais tourner lentement.
As tu un minimum de couple ou le moteur n'a aucune résistance.
Avec Linuxcnc, Arduino, c'est pareil, un step et un dir (même facultatif car c'est pour le sens).
Vérifie ta masse

Idem avec easydriver ou leadshine.

N'as tu pas inversé ton step et dir ?

Pour linuxcnc, il te faut un pc avec port //.
Tu télécharges le cd depuis le site de linuxcnc (version remasterisée d'ubuntu 10.04 avec linuxcnc).
Tu lance le cd set tu demarre le pc. ubuntu sera lancé en live sans installation.
Par la suite, tu peux l'installer.
Dans application, tu ouvres stepconfig.
Nouvelle machine
Tu arrives sur un panneau ou tu choisi tes pins du port //
Tu arrives sur l' axe X et tu as les réglage de vitesse, et un bouton de test.
Tu prends un cable db25 et tu relies la pin 2 et 3 et une des 18-25 (gnd) à ton driver

Voilà ca devait fonctionner  smiley




 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour Infobarquee, Bonjour Pierre

J'ai bien vérifié mon cablage encore une fois et toujours pas moyen d'avoir par exemple 200steps demandés/ 200step réalisés.
Au cas ou je vais essayer de vous montré ce que j'ai fais. Désolé ce n'est pas du grand art, je l'ai fait avec paint. Je l'ai mis en attaché car impossible d'insérer l'image.
Le moteur n'a aucune charge, on sent qu'il essaye de tourné (il "vibre") mais sur un tour par example, il n'en fait qu'a peine la moitié.Le retour n'ai jamais identique à l'aller.
Et si le vitesse demandé est trop faible ou trop élévé alors dans ce cas il ne fait que vibrer sans bouger
Je peux faire une petite video si vous voulez pour vous montrer plus concrètement.
Merci de votre aide.


* montage.png (1081.63 KB, 1600x1088 - viewed 26 times.)
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1983
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

tu es vraiment certain d'avoir vérifié ton cablage? smiley
moi ce que je vois c'est
A1--> rouge au lieu de NOIR
A2--> bleu au lieu de VERT
B1--> noir au lieu de ROUGE
B2--> vert au lieu de BLEU

en plus tu as le cablage dans le tableau sur ton image smiley-wink
tu crois que c'est identique?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 84
Rétrofit et conception de machines et d'équipements pour l'industrie et l'agro-alimentaire.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Après vérification de ta connectique

Sur le Arduino Shield Motor R3, à quoi sert les connexions à PWM  ?

Je n'utilise pas ça moi ?

Avec l'easydriver ou leadshine, le minimum une boucle avec un step et un delay.

Essaie ça : http://www.airspayce.com/mikem/arduino/AccelStepper/

Et l'exemple : http://www.airspayce.com/mikem/arduino/AccelStepper/ConstantSpeed_8pde-example.html

Logged

Offline Offline
Full Member
***
Karma: 3
Posts: 179
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
a mon avis, il faut aussi connecter le 5V de l'Arduino > carte motor shield afin d'alimenter le circuit IC2 par lequel passent tes signaux DirA et DirB
Jacques
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tu es vraiment certain d'avoir vérifié ton cablage? smiley
moi ce que je vois c'est
A1--> rouge au lieu de NOIR
A2--> bleu au lieu de VERT
B1--> noir au lieu de ROUGE
B2--> vert au lieu de BLEU

en plus tu as le cablage dans le tableau sur ton image smiley-wink
tu crois que c'est identique?

Effectivement je me sens un peu bête. Malheuresement je viens juste d'essayer avec :
A1--> NOIR
A2--> VERT
B1--> ROUGE
B2--> BLEU
 ça ne change rien au probleme.


Pierre :
Quote
Sur le Arduino Shield Motor R3, à quoi sert les connexions à PWM  ?
Je savais pas trop avant que tu me poses la question car je suivais un tuto qui expliquait que la fonction stepper  les prenait en paramètre avec les pins DIR_A et DIR_B et  "s'occupait du reste". Mais en cherchant il semblerait qu'ils servent à autoriser la transmission de puissance. Il donne un exemple où il se contente de les mettres à l'état HIGH et il pilote le moteur avec les pin DIR A et DIR B. Du coup la fonction stepper n'a plus que 3 arguments au lieu de 5 (nbrdepas, pinDIR A,pinDIR B)
Code:
#include <Stepper.h>
 
 const int stepsPerRevolution = 48;  // change this to fit the number of steps per revolution
                          // for your motor
 
 // initialize the stepper library on the motor shield
 Stepper myStepper(stepsPerRevolution, 12,13);     
 
 // give the motor control pins names:
 const int pwmA = 3;
 const int pwmB = 11;
 const int brakeA = 9;
 const int brakeB = 8;
 const int dirA = 12;
 const int dirB = 13;
 
 int x = 0;
void setup() {
 Serial.begin(9600);
 // set the PWM and brake pins so that the direction pins  // can be used to control the motor:
pinMode(pwmA, OUTPUT);
 pinMode(pwmB, OUTPUT);
 pinMode(brakeA, OUTPUT);
 pinMode(brakeB, OUTPUT);
 digitalWrite(pwmA, HIGH);
 digitalWrite(pwmB, HIGH);
 digitalWrite(brakeA, LOW);
 digitalWrite(brakeB, LOW);
 
 // initialize the serial port:
 Serial.begin(9600);
 // set the motor speed (for multiple steps only):
 myStepper.setSpeed(2);
 }

 
 void loop() {
 
  myStepper.step(48);
  myStepper.step(-48);

  delay(2000);

 }

J'ai donc essayé et la....CA FONCTIONNE smiley. Y a des petits raté pour les vitesses élevés mais dans l'ensemble le moteur fait bien le nombre de pas demandé.
J'ai meme essayé avec la charge et sous 9V et c'est impec sauf que le moteur chauffe un max(meme a vide en faite). Je pense que je vais quand utilisé un de tes drivers (LeadShine) pour utilisé mon moteur sour 36 ou 40V. Donc je risque d'avoir encore besoin de ton aide car c'est un autre type de fonctionnement (pinPUL et  pinDIR).
Maintenant plus qu'à faire fonctionner ma version Labview...

Merci à vous tous pour vos réponses et votre aides
Dowix
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
a mon avis, il faut aussi connecter le 5V de l'Arduino > carte motor shield afin d'alimenter le circuit IC2 par lequel passent tes signaux DirA et DirB
Jacques

Merci pour cette information, il semblerait qu'il ait une différence. Je viens de tester avec et sans, et le moteur fonctionne bien mieux avec smiley
Logged

Pages: [1]   Go Up
Jump to: