در راه اندازی ابزار ها و قطعاتی که نیاز به ولتاژ و جریان بالایی دارند از بافر ها استفاده می شود . بافر ها وظیفه تطبیق سطح ولتاژ و جریان را بر عهده دارند . برای راه اندازی موتور ها نیز از بافر ها استفاده می شود چراکه MCU ها توان تامین جریان و ولتاژ مورد نیاز موتور ها را ندارد . استپرموتور ها نیز از این قاعده مثتسنی نیستند . در راه اندازی استپر موتور ها علاوه بر بافر ، به دلیل اینکه به سیگنال های PWM با دیوتی سایکل و فاز های مختلف نیاز است ، از درایور موتور ها استفاده می شود . درایور های استپر علاه بر اینکه یک بافر به عمل می آیند ، توانایی کنترل استپرموتور ها را نیز دارند . در راه اندازی استپر ها با درایور ، به تعداد کمتری از پین های MCU نیاز است . یکی از مدل های کاربردی درایور استپر مدل TB6600 می باشد . TB6600 مدل های مختلفی دارد که تنها در حداکثر آمپر خروجی با همدیگر تفاوت دارند .

 

در تصویر زیر نحوه اتصال ماژول به آردوینو و موتور نشان داده شده است :

 

کد های آردوینو :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int PUL=7; //define Pulse pin
int DIR=6; //define Direction pin
int ENA=5; //define Enable Pin
void setup() {
pinMode (PUL, OUTPUT);
pinMode (DIR, OUTPUT);
pinMode (ENA, OUTPUT);
}
void loop() {
for (int i=0; i<6400; i++) //Forward 5000 steps
{
digitalWrite(DIR,LOW);
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delayMicroseconds(50);
digitalWrite(PUL,LOW);
delayMicroseconds(50);
}
for (int i=0; i<6400; i++) //Backward 5000 steps
{
digitalWrite(DIR,HIGH);
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delayMicroseconds(50);
digitalWrite(PUL,LOW);
delayMicroseconds(50);
}
}
int PUL=7; //define Pulse pin int DIR=6; //define Direction pin int ENA=5; //define Enable Pin void setup() { pinMode (PUL, OUTPUT); pinMode (DIR, OUTPUT); pinMode (ENA, OUTPUT); } void loop() { for (int i=0; i<6400; i++) //Forward 5000 steps { digitalWrite(DIR,LOW); digitalWrite(ENA,HIGH); digitalWrite(PUL,HIGH); delayMicroseconds(50); digitalWrite(PUL,LOW); delayMicroseconds(50); } for (int i=0; i<6400; i++) //Backward 5000 steps { digitalWrite(DIR,HIGH); digitalWrite(ENA,HIGH); digitalWrite(PUL,HIGH); delayMicroseconds(50); digitalWrite(PUL,LOW); delayMicroseconds(50); } }
int PUL=7; //define Pulse pin
int DIR=6; //define Direction pin
int ENA=5; //define Enable Pin
void setup() {
  pinMode (PUL, OUTPUT);
  pinMode (DIR, OUTPUT);
  pinMode (ENA, OUTPUT);

}

void loop() {
  for (int i=0; i<6400; i++)    //Forward 5000 steps
  {
    digitalWrite(DIR,LOW);
    digitalWrite(ENA,HIGH);
    digitalWrite(PUL,HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL,LOW);
    delayMicroseconds(50);
  }
  for (int i=0; i<6400; i++)   //Backward 5000 steps
  {
    digitalWrite(DIR,HIGH);
    digitalWrite(ENA,HIGH);
    digitalWrite(PUL,HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL,LOW);
    delayMicroseconds(50);
  }
}

نکته : در برنامه فوق موتور به اندازه 5000 استپ به صورت ساعتگرد و سپس 5000 استپپ به صورت پاد ساعت گرد خواهد چرخید . برای تنظیم اندازه هر است از دیپ سوئیچ بغل ماژول استفاده کنید .

Tags:
About Author: USER_4