cablage TB6600 sur arduino UNO


bonjour,
je viens de terminer une petite machine pour mon job.
cette machine nous sert à enrouler du feuillard à l'aide d'un moteur pas à pas, sur une longueur précise et sélectionnée.

je me suis servi de l'atelier "clavier musical"(et l'échelle de résistance) où j'ai remplacé la fonction de la note par la commande du moteur qui, selon la valeur de la résistance, va me donner 6 longueurs différentes et j'y ai ajouté de quoi afficher la dimension fabriquée sur l'affichage lcd(3 programmes jumelés)

mon soucis est la raccordement du pilote(un tb6600 ou copie, j'ai du trouver ce type de pilote car le moteur peut aller jusqu'à 4a, il faut ça pour tirer la bobine de feuillard pleine) sur la carte :
actuellement, cela fonctionne mais pas comme je voudrais, c à d qu'une fois le tout allumé, impossible de tourner le moteur à la main!

pour l'instant, tout est raccordé comme ceci :
ena-, dir- et pul- sont raccordés ensembles vers gnd de arduino
pul+ vers une patte de arduino(8 )
dir+ vers patte arduino(9)

j'ai bien cherché partout pour trouver une autre façon de raccorder uno au tb6600 et j'en ai trouvé une ou deux mais pas encore essayé...
quelqu'un aurait une solution?
merci!
ci dessous, le code employé, c'est pas encore top, je dois y mettre de l'ordre mais ça vous donne un aperçu!

code: [select]

#include <liquidcrystal.h> // inclusion de la librairie pour afficheur lcd
#include <stepper.h>

// --- constantes des broches lcd ---

const int rs=2; //declaration constante de broche
const int e=3; //declaration constante de broche

const int d4=4; //declaration constante de broche
const int d5=5; //declaration constante de broche
const int d6=6; //declaration constante de broche
const int d7=7; //declaration constante de broche


liquidcrystal lcd(rs, e, d4, d5, d6, d7);// initialisation lcd en mode 4 bits

// parmaètres moteur pàp

const int nombrepas=200; // nombre de pas du servomoteur

const int pas_1=8; //declaration constante de broche
const int pas_2=9; //declaration constante de broche

stepper stepper(nombrepas, pas_1, pas_2);  // crée un objet stepper pour contrôler le moteur pas à pas
// pas_1, pas_2 commandent la 1ère phase




void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage ---

// moteur pas à pas

pinmode(pas_1, output); //met la broche en sortie
pinmode(pas_2, output); //met la broche en sortie

lcd.begin(16,2); // initialise le lcd avec 20 colonnes x 4 lignes

delay(10); // pause rapide pour laisser temps initialisation

// test du lcd

lcd.print("lcd ok") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran

}
void loop() {
 
  int keyval = analogread(a0);
  lcd.print(keyval);
   lcd.clear();
   
  if (keyval == 1023) {
 
  lcd.print("diam 66");//
stepper.setspeed(4000); 
for (int i=1; i<=nombrepas; i++){ // boucle de défilement du nombre de pas
  stepper.step(320); // pas en sens positif
}
         
}
  else if(keyval >= 990 && keyval <= 1010) {

lcd.print("diam 80");//
stepper.setspeed(3000); 
for (int i=1; i<=nombrepas; i++){ // boucle de défilement du nombre de pas
  stepper.step(384); // pas en sens positif
}
         
}
  else if(keyval >= 505 && keyval <= 515) {
 
  lcd.print("diam 100");//
stepper.setspeed(3000); 
for (int i=1; i<=nombrepas; i++){ // boucle de défilement du nombre de pas
  stepper.step(480); // pas en sens positif
}
         
   }


  else if(keyval >= 30 && keyval <= 35) {
 
  lcd.print("feuillard  *kit*");//
stepper.setspeed(3000); 
for (int i=1; i<=nombrepas; i++){ // boucle de défilement du nombre de pas
  stepper.step(-4); // pas en sens positif (-480)
}
         
   }

else if(keyval >= 900 && keyval <= 945) {

lcd.print("diam 55");//
stepper.setspeed(3000); 
for (int i=1; i<=nombrepas; i++){ // boucle de défilement du nombre de pas
  stepper.step(288); // pas en sens positif
}
         
}
else if(keyval >= 950 && keyval <= 989) {
       
   lcd.print("diam 30");//
   stepper.setspeed(3000); 
for (int i=1; i<=nombrepas; i++){ // boucle de défilement du nombre de pas
  stepper.step(192); // pas en sens positif
}


        }
         
  lcd.clear();
  delay(10);
  lcd.print("pret...");
  delay(100);   
}

...
actuellement, cela fonctionne mais pas comme je voudrais, c à d qu'une fois le tout allumé, impossible de tourner le moteur à la main!

pour l'instant, tout est raccordé comme ceci :
ena-, dir- et pul- sont raccordés ensembles vers gnd de arduino
pul+ vers une patte de arduino(8 )
dir+ vers patte arduino(9)
bonjour
a verifier avec le ds tb6600
mais si ena=low (gnd) les sorties doivent etre toujours alimentées
si tu veux pouvoir manœuvrer le pap à la main , il faut peut etre de maniere soft (ou hard si tu prefere) passer ena à high



Arduino Forum > International > Français (Moderators: jfs, Snootlab) > cablage TB6600 sur arduino UNO


arduino

Comments

Popular posts from this blog

Help with Missing Filename Error?

more info - Joomla! Forum - community, help and support

Using phone battery to power a plane.