Comment cabler et faire tourner moteur pas à pas

Un shield de pilotage pour 4 moteurs à courant continu ou 2 moteurs pas à pas, qui permet une alimentation sur 12V et qui n'utilise que 4 sorties Pwm (sur 6) et 2 entrées analogiques (sur 6) de l'Arduino

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude jfern_fr » Dim 4 Déc 2011 19:22

Bonsoir,

Même problème, à savoir :


1er phase :---|----2 eme phase :-----|----3 eme phase :---|----4 eme phase :
M2 vert-------|-----M2 éteinte--------|-----M2 rouge--------|-----M2 éteinte
M1 rouge-----|-----M1 éteinte--------|-----M1 vert----------|-----M1 éteinte
M4 vert-------|-----M4 éteinte--------|-----M4 rouge--------|-----M4 éteinte
M3 rouge-----|-----M3 éteinte--------|-----M3 vert----------|-----M3 éteinte

Du coup j'ai cablé mon moteur sur M1 et M3...

Je ne sais pas si c'est le plus optimal (ou mal) mais pour le moment je vais faire avec et ca à l'air de fonctionner. Pour info, je suis sur MacOS X, arduino uno V2, soft arduino 1.0, et rotoshield 1.0.

Le code que j'utilise:

Code: Tout sélectionner
// Snootlab Max 7313 Motor shield library
// Based on Adafruit Motor shield library
// https://github.com/adafruit/Adafruit-Motor-Shield-library
// copyleft Snootlab, 2011
// this code is public domain, enjoy!

#include <Wire.h>
#include <snootor.h>


SnootorStep M;
SnootorStep M1;


void setup(){
// Serial.begin(9600);
  Wire.begin();

/*
 * Stepper initialization :
 *
 * init(delay,stepcount,motornum, mode);
 *
 * where :
 *
 * * delay is the time between each basic step, in microseconds, which determines the motor speed
 * * stepcount is the number of steps per turn
 * * motornum is 1 or 2, depending wiring
 * * mode is either MOTOR_MODE_HALFSTEP or MOTOR_MODE_FULLSTEP
 */
  M.init(700,48,1,MOTOR_MODE_FULLSTEP);
  M1.init(700,48,2,MOTOR_MODE_FULLSTEP);
}

void loop(){
  M.setMode(MOTOR_MODE_FULLSTEP);
  M1.setMode(MOTOR_MODE_FULLSTEP);
  for (int loopIng=0;loopIng<10;loopIng++){
    M.forward(48*2*loopIng);
    SC.delay(2000);
    delay(500*loopIng);
  }

}


J'ai du déclarer M et M1, sinon ca ne fonctionne pas...

Autre point, je suis débutant dans le monde de l'électronique.

Image

Merci par avance pour la suite...
jfern_fr
 
Messages: 1
Inscription: Lun 30 Mai 2011 21:34

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Lun 5 Déc 2011 19:08

Bonjour,

Oui je comfirme chez moi aussi en utilisant cette parade, j'arrive très bien à controler mon moteur pas à pas.

Moteur DC :
J'ai re re fait les essais et j'ai réussi à avoir 4 rouge, 4 verte, 4 éteintes. Le problème venait d'un fichier mal copier certainement. j'ai tout re télécharger et réinstallé et c'est bon.
Par contre je ne peux pas addresser uniquement M1 (toujours vert/rouge) ou M2 (toujours éteinte) même en déclarant les 4 sorties comme indiqué dans le post Rotorshield bugué.

Merci.
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Lun 5 Déc 2011 19:43

Bonsoir,

nous devrions sortir une version de la bibliothèque jeudi,

en attendant et concernant vos moteurs DC, pourriez vous poster le code qui vous pose problème
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Lun 5 Déc 2011 22:57

Code: Tout sélectionner
#include <Wire.h>

#include <snootor.h>

SnootorDC Motor_1;
SnootorDC Motor_2;
SnootorDC Motor_3;
SnootorDC Motor_4;

void setup(){

  Serial.begin(9600);
  Wire.begin();
  Motor_1.init(1);
  Motor_2.init(2);
  Motor_3.init(3);
  Motor_4.init(4);
  Serial.println("init ok");
}

void loop(){
  SC.dump();
  // run forward at maximal speed
  Motor_1.setSpeed(255);
  Motor_1.run(FORWARD);
  delay(2000);

  // stop for 2 seconds
  Motor_1.run(RELEASE);
  delay(2000);

  // run backward at maximal speed
  Motor_1.setSpeed(255);
  Motor_1.run(BACKWARD);
  delay(2000);
}


Résultat : M1 vert/rouge constant
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Lun 5 Déc 2011 22:58

Code: Tout sélectionner
#include <Wire.h>

#include <snootor.h>

SnootorDC Motor_1;
SnootorDC Motor_2;
SnootorDC Motor_3;
SnootorDC Motor_4;

void setup(){

  Serial.begin(9600);
  Wire.begin();
  Motor_1.init(1);
  Motor_2.init(2);
  Motor_3.init(3);
  Motor_4.init(4);
  Serial.println("init ok");
}

void loop(){
  SC.dump();
  // run forward at maximal speed
  Motor_2.setSpeed(255);
  Motor_2.run(FORWARD);
  delay(2000);

  // stop for 2 seconds
  Motor_2.run(RELEASE);
  delay(2000);

  // run backward at maximal speed
  Motor_2.setSpeed(255);
  Motor_2.run(BACKWARD);
  delay(2000);
}



Résultat : M2 éteint tout le temps
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Mar 6 Déc 2011 12:09

Bonjour,

ok, le comportement sur M2 n'est pas normal.

Pourriez vous vérifier et ou refaire les soudures de :
- R4 et R5
- du GND du bornier power
- des pins D11 et D3 des connecteurs empilables.

et d'autre part, je vais encore vous mettre à contribution pour des photos si possible.
Vous serait il possible de prendre une photo macro :
- de la zone des leds devant le bornier M1/M2
- du circuit Max7313 (le composant miniature de surface au centre en face arrière)
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Mer 7 Déc 2011 13:52

Bonjour,

J'ai refait toutes les soudures de la carte, toujours le même résultat. Je vais poster les photos ce soir mais je commence à désespérer de voir ma carte fonctionner correctement :-(

Bonne après midi. Merci
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Mer 7 Déc 2011 14:00

Bonjour ne désespérez pas !

Si elle a un souci, on vous la remplacera, on essaie juste d'identifier la source du pb pour l'instant (des photos ?)
Et comme il y a un souci de librairie sur laquelle nous travaillons en ce moment même, l'analyse est plus complexe

On vous tiens informés très vite
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Mer 7 Déc 2011 23:14

IMG_0026 (Copier).JPG
IMG_0026 (Copier).JPG (39.44 Kio) Vu 3822 fois



IMG_0028 (Copier).JPG
IMG_0028 (Copier).JPG (51.32 Kio) Vu 3822 fois



IMG_0029 (Copier).JPG
IMG_0029 (Copier).JPG (79.81 Kio) Vu 3822 fois
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Mar 13 Déc 2011 11:21

Bonjour,

C'était juste pour savoir ou l'on pouvais avoir le suivi du développement de la partie logiciel du Rotoshield et savoir si une nouvelle version était disponible.

Merci
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Mar 13 Déc 2011 18:31

Bonsoir,

oui il y a eu du développement sur les moteurs pas à pas et DC,
nous avons toujours le souci d'initialisation par paire de moteur lors de l'utilisation des DC

vous pourrez trouver cette librairie en cours sur github dans la branche dev-optimize.
https://github.com/Snootlab/Snootor/tree/dev-optimize

supprimez les précédentes versions et installez comme d'habitude.
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Sam 24 Déc 2011 09:20

Bonjour,

Après avoir fait les mise à jour de la librairie, j'ai résolu beaucoup de mes problème concernant les moteur DC et PAS à PAS.
Il me reste qu'un problème qui je pense est coté matériel :

Code: Tout sélectionner
#include <Wire.h>

// this is the snootor library
#include <snootor.h>

// Declaration of 2 motor objects

SnootorDC Motor_1;
SnootorDC Motor_2;
int i;
void setup(){

// Initialization according to pins
Serial.begin(115200);
 Wire.begin();
  Motor_1.init(1);
  Motor_2.init(2);
  Serial.println("init ok");
}

void loop(){
  Serial.print("Round ");
  Serial.println(i++);
  SC.dump();
// run forward at maximal speed

  Motor_1.setSpeed(255);
  Motor_1.run(FORWARD);
  delay(2000);

// stop for 2 seconds
  Motor_1.run(RELEASE);
  delay(2000);

// run backward at maximal speed

  Motor_1.setSpeed(255);
  Motor_1.run(BACKWARD);
  delay(2000);
}


Snootlab-Snootor-38a9040 / Arduino 0.23 / Win 7

Résultat à vide : M1 rouge vert éteint (led très faible pas d'intensité)
Résultat avec un moteur DC : M1 rouge vert éteint (led très faible pas d'intensité) et le moteur tourne pas.

Merci et Bonne fêtes à tous !!! :-)
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Ven 6 Jan 2012 11:46

Bonjour,

Je venais au nouvelle car de mon coté je n'ai pas trouvé de solution a ce problème. Je voulais savoir si vous avez pu tester le code et le résultat obtenu.

Merci
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Ven 6 Jan 2012 15:24

Bonjour,

J'ai le même souci dans les mêmes conditions que vous, ce qui semble continuer d'exclure un défaut matériel
pourriez vous tenter d'utiliser le moteur 3 à la place ?
Il semblerait que sur les moteurs 1 & 2, nous ayons un souci si l'init & setspeed n'est pas effectué sur les deux moteurs,
merci pour votre retour
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Jeu 2 Fév 2012 21:08

Bonjour,

Je reviens vers vous car en fait si on peu utiliser la sortie 3 pour faire tourner un moteur, le problème est que je m'étais renseigné par votre site internet sur les posibilités du rotorshield avant de l'acheter. En fait le projet que j'envisagé de réaliser devait utiliser toute les sorties de la carte. Je suis déçu de ce problème et regrette d'avoir acheté cette carte maintenant que je sais qu'elle n'est pas déveloper totalement et qui reste encore beaucoup de points à améliorer. Vous auriez pu au moins préciser qu'elle est encore au stade de dévelopement.

Merci.
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Lun 6 Fév 2012 15:34

Bonjour,

Vous serait il de préciser quel est votre souci actuellement ?
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Dim 12 Fév 2012 19:09

Bonjour,

Mon problème n'as pas beaucoup changé même code que précédemment, même environnement sauf la librairie (dernière version) et donc le problème : même résultat.

Snootor-c7c533d / Arduino 0.23 / Win 7

Code: Tout sélectionner
#include <Wire.h>

// this is the snootor library
#include <snootor.h>

// Declaration of 2 motor objects

SnootorDC Motor_1;
SnootorDC Motor_2;
int i;
void setup(){

// Initialization according to pins
Serial.begin(115200);
 Wire.begin();
  Motor_1.init(1);
  Motor_2.init(2);
  Serial.println("init ok");
}

void loop(){
  Serial.print("Round ");
  Serial.println(i++);
  SC.dump();
// run forward at maximal speed

  Motor_1.setSpeed(255);
  Motor_1.run(FORWARD);
  delay(2000);

// stop for 2 seconds
  Motor_1.run(RELEASE);
  delay(2000);

// run backward at maximal speed

  Motor_1.setSpeed(255);
  Motor_1.run(BACKWARD);
  delay(2000);
}


Résultat à vide : M1 rouge vert éteint (led très faible pas d'intensité)
Résultat avec un moteur DC : M1 rouge vert éteint (led très faible pas d'intensité) et le moteur tourne pas.
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude Lionel » Mar 14 Fév 2012 12:23

Bonjour,

un bug a été corrigé dans la librairie suite à votre intervention,
supprimez le répertoire \documents\arduino\libraries\snootor

récupérez la version disponible sur https://github.com/Snootlab/Snootor
dézippez, renommez le répertoire de la lib en snootor, placez le dans \documents\arduino\libraries\

réouvrez votre GUI arduino et recompilez votre exemple, ça devrait tourner.

Merci de votre aide au debuggage de notre lib, tenez nous informés.
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude nicolas65800 » Sam 17 Mar 2012 23:45

Bonjour,

J'ai un nouveau problème je m'explique :

Snootor-2e3daf6 / Arduino 0.23 / Win 7

Code: Tout sélectionner
// Snootlab Max 7313 Motor shield library
// Based on Adafruit Motor shield library
// https://github.com/adafruit/Adafruit-Motor-Shield-library
// copyleft Snootlab, 2011
// this code is public domain, enjoy!

#include <Wire.h>
#include <snootor.h>


SnootorStep M;
SnootorStep C;


void setup(){
// Serial.begin(9600);
  Wire.begin();

/*
 * Stepper initialization :
 *
 * init(delay,stepcount,motornum, mode);
 *
 * where :
 *
 * * delay is the time between each basic step, in microseconds, which determines the motor speed
 * * stepcount is the number of steps per turn
 * * motornum is 1 or 2, depending wiring
 * * mode is either MOTOR_MODE_HALFSTEP or MOTOR_MODE_FULLSTEP
 */
  M.init(1600,200,2,MOTOR_MODE_HALFSTEP);
 
  C.init(1500,200,1,MOTOR_MODE_HALFSTEP);
}

void loop(){
  static int d;
  uint8_t i;
  M.setMode(MOTOR_MODE_HALFSTEP);
  C.setMode(MOTOR_MODE_HALFSTEP);
//  Serial.println("start halfstep mode...");
  M.forward(3190);
 C.forward(3190);
   
  SC.delay(8000);
  M.forward(-3190);
    SC.delay(8000);
}


Au début le moteur M & C tournent très bien.
A la seconde phase, le moteur C tourne pas normal mais perturbe le moteur M

Merci
nicolas65800
 
Messages: 24
Inscription: Jeu 17 Nov 2011 23:30

Re: Comment cabler et faire tourner moteur pas à pas

Message non lude hoon » Mar 8 Mai 2012 19:13

Salouti tutti !

Moi aussi je me lance dans le step !... Je découvre avec joie ce fil du forum... arrive à débugger et à faire tourner mes moteurs... et... et...

nicolas65800 a écrit:Bonjour,
J'ai un nouveau problème je m'explique :...


... je suis entièrement d'accord avec nicolas65800 !!!

Quelques bricolages plus tard je constate que le problème apparaît uniquement lorsque les 2 moteurs ne tournent pas simultanément...

  • Quand un moteur doit faire 300 pas et l'autre 500, le problème apparaît sur les 200 derniers...
  • Quand on demande aux 2 moteurs de tourner ensemble l'un avec x pas et l'autre avec 0... ça bloque aussi !

Description du problème : Il semble que la puissance qui arrive au moteur ne soit pas suffisante (moteurs ne tournent pas et diodes faiblardes...) comme si la tension envoyée aux bobines à ce moment était très inférieure à celle requise.

Mes idées pour faire avancer les choses... et qui valent ce qu'elles valent sans plus !

  • Y'aurait pas un truc du genre un bouclage de masse qqpart qui divise la tension par deux ?
  • Ou bien un truc logiciel qui fait que le Rotoshield est obligé de commuter 2 fois plus vite pour alimenter les 2 moteurs et que donc la tension qui arrive n'est pas à la hauteur ?? (un truc du genre une découpe de tension trop rapide...???)

Je suis impatient de savoir la fin !
Bon bricolage à tous et merci Lionel pour tes réponses !

Note aux lecteurs avides de connaître l'art de brancher un moteur pas à pas : j'envisage de faire un petit schéma pour tous :D sauf si Lionel a ça dans un coin :roll:
Avatar de l’utilisateur
hoon
 
Messages: 6
Inscription: Sam 5 Mai 2012 14:44

PrécédenteSuivante

Retourner vers Rotoshield

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron