Aller au contenu


Mmaatthhiieeuu

Inscrit(e) (le) 20 sept. 2014
Déconnecté Dernière activité sept. 30 2014 04:48
-----

Sujets que j'ai initiés

Programme arduino moteur pas à pas et carte de contrôle micro pas

21 septembre 2014 - 01:52

Bonjour à tous!

Je suis nouveau sur le forum, je m'appel Mathieu et je suis en master 2 aux beaux arts de Montpellier.

Je travail en ce moment sur une pièce pour laquelle je dois créer un déplacement de haut en bas avec un systeme de bièle et un moteur pas à pas ! Un artist pour qui je travail et qui construit des machines m'a récement donné un carte de contrôle micropas du type CW-215

 

 

Le controle se fait donc avec du PWM sur ma arduino uno, qui correspond à la sortie CP(control pulse) de la carte. Seulement je n'arrive pas à faire ne serait-ce que vibrer mon moteur, il me semble que mes connexions sont bonnes : Enable, Direction et CP vers mes pines digitales arduno (pine PWM pour le CP), et le 5v sur le 5v arduino. Du coté moteur c'est un unipolaire 6 fils que j'utilise en bipolaire 4fils, j'ai repéré les bobines et fait le branchement A-A+ B-B+, puis l'alime 12v sur GND et VCC,...Je ne suis pas très expérimenté en programmation mais il me semble avoir compris la logique pour les carte micro pas sauf que........bin non apparement !^^

voici un petit bout de code si quelqu'un peut me donner un coup de main ce serait super !

Bien à vous !

Mat

void setup(){


pinMode(17,OUTPUT);  //M2  Dir
pinMode(18,OUTPUT);  //E2 pwm
pinMode(19,OUTPUT);  //E2 enable

delay(2000);
}

void loop(){


digitalWrite(19,HIGH);
delay(2000);
                                         //direction cw
digitalWrite(17,LOW);
  delay(400);

for (int i=0;i<2;i=i+1){

 
 
  digitalWrite(17,LOW);
 for (int i=0;i<400;i=i+1){
 digitalWrite(18,HIGH);  
 delayMicroseconds (310);
 digitalWrite(18,LOW);
 delayMicroseconds(310);
 }  
 
 digitalWrite(17,HIGH);delay(20);
 for (int i=0;i<400;i=i+1){
 digitalWrite(18,HIGH);  
 delayMicroseconds (310);
 digitalWrite(18,LOW);
 delayMicroseconds(310);
 }
delay(100);

 for (int i=0;i<2;i=i+1){
 digitalWrite(17,LOW);
 for (int i=0;i<150;i=i+1){
 digitalWrite(18,HIGH);  
 delayMicroseconds (310);
 digitalWrite(18,LOW);
 delayMicroseconds(310);
 }


}
//ENABLE
digitalWrite(19,LOW);
for (int i=0;i<2;i=i+1){
delay(30000);
}
}
}