آموزش استفاده از درایور های استپر A3967

موتور های استپر یکی از انواع موتور های تولید شده و موجود در بازار هستند که به دلیل کنترل دقیق میزان گردش شفت و امکان کنترل زاویه ی گردش به میزان دلخواه در بسیاری از سازه های مکاترونیکی و صنعت کاربرد زیادی دارند. در این مطلب نحوه ی صحیح استفاده از درایور موتور های استپر A3967 را با استفاده از برد آردوینو و مسائل مربوط به آن را آموزش می دهیم.

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

 

تصویر بالا نمایشگر پین های ماژول و کاربرد هر یک است. در این آموزش از ورژن ۴٫۴ استفاده شده است ولی هم اکنون ورژن ۴٫۵ نیز عرضه شده است که ممکن است در بازار موجود باشند. تفاوت اصلی ورژن ۴٫۴ با ۴٫۵ اضافه شدن مقاومت های کاهش جریان به پایه های DIR و STEP هستند که در طولانی مدت موجب جلوگیری از اعمال ولتاژ بیش از حد به موتور خواهند شد.

پین هایی که ما با آن ها سر و کار داریم عبارتند از :

پین های Motor Coil A به یک فاز موتور استپر متصل خواهند شد.

پین های Motor Coil B به فاز دیگر موتور استپر متصل خواهند شد.

برای پیدا کردن فاز های یک استپر موتور چند راه وجود دارد، توجه به رنگ سیم ها و مطالعه دیتاشیت، اتصال کوتاه دو سیم و چرخاندن شفت : چنانچه سیم های یک فاز را اتصال کوتاه دهید چرخاندن شفت کمی سخت تر خواهد شد، استفاده از مولتی متر در حالت دیود، بازر یا مقاومت : سیم های یک فاز مقاومت بالایی را نسبت به همدیگر دارند پس با اتصال به مولتی متر همانند اتصال کوتاه عمل خواهند کرد و می توان سیم های یک فاز را تشخیص داد.

پین های Power In مربوطه به ولتاژ ورودی و مصرفی موتور هستند که با توجه به موتور ها می تواند بین ۶ تا ۳۰ ولت باشد.

اکثر موتور های استپر موجود در بازار ولتاژ پایین تری از ۱۲ ولت دارند، بخصوص موارد Nema17 که پرکاربرد ترین موتور در پرینتر های سه بعدی و CNC های ابعاد کوچک و متوسط است. دقت کنید که نیازی به یکسان بودن ولتاژ اعمالی و ولتاژ کاری موتور تا زمانی که جریان کنترل شده باشد نیست! فرض کنید شما موتوری را دارید که ولتاژ کاری آن ۳ ولت است و جریان هر فاز آن نیز ۱ آمپر است. شما میتوانید با اعمال ولتاژ ۱۲ ولت به استپ ریت بیشتر و بالاتری دست یابی کنید ولی به منظور جلوگیری از آسیب زدن به موتور باید جریان اعمالی شما مناسب باشد، این مقدار به صورت ریاضی ۰٫۲۵۰ آمپر است ولی به صورت کاربردی باید جریان را کاملا پایین بیاورید و کم کم تا حدی بالا ببرید که کارکرد آن دچار مشکل نشود ولی موتور داغ نکند. داغ کردن موتور به منظور اعمال جریان یا بار بیش از حد به موتور است و ممکن است به آن آسیب برساند. برای کنترل جریان پتاسیومتری روی برد درایور های استپر وجود دارد که باید با توجه به نوع درایور تنظیم گردد.

پین های GND و ۵V مربوط به ولتاژ تغذیه ی ماژول هستند. این پین ها به پین های GND و ۵V آردوینو متصل خواهند شد.

چنانچه بردی که شما استفاده می کنید از ولتاژ ۳٫۳ استفاده می کند باید با اتصال کوتاه دو پین ۳/۵V که در گوشه پایینی سمت چپ برد قرار دارد رگولاتور موجود روی برد را غیر فعال کنید و ولتاژ اعمالی به درایور را روی ۳٫۳ قرار دهید. دقت کنید که اعمال ولتاژ ۵ ولت در زمانی که اتصال پین های ۳/۵V برقرار است ممکن است به درایور آسیب برساند.

پین STEP مربوط به میزان استپ مورد نیاز موتور است و باید طبق اسکچ مورد استفاده به یکی از پین های دیجیتال آردوینو متصل شود.

تا زمانی ولتاژ این پین برقرار است یعنی تا زمانی که این پین High است درایور موتور را به گردش در میاورد و زمانی که ولتاژ این پین قطع می شود یعنی Low می شود درایور استپر را نگه می دارد. این پین در اسکچ تایین و مورد استفاده قرار می گیرد.

پین DIR مربوط به جهت گردش موتور است و باید طبق اسکچ مورد استفاده به یکی از پین های دیجیتال آردونو متصل شود.

تا زمانی که ولتاژ این پین است یعنی تا زمانی که این پین High است درایور موتور را به یک جهت میچرخاند (مثلا ساعتگرد) و زمانی که ولتاژ این قطع می شود یعنی Low می شود درایور موتور را در جهت برعکس می چرخاند.(مثلا پاد ساعتگرد) این پین در اسکچ تایین و مورد استفاده قرار می گیرد.

پین های MS1 و MS2 مربوط به میزان میکرو استپ های موتور است.

با توجه به این که طی کردن یک استپ کامل در یک سازه ممکن است میزان زیادی باشد و احتمالا هم هست. مفهومی به نام میکرو استپ به وجود آمده است. در اصل با استفاده از میکرو استپ درایور به صورت مجازی یک استپ را به چند بخش که معمولا بین ۲ تا ۱۲۸ است تقسیم می کند و موتور را به این میزان میچرخاند. فرض کنید یک موتور با طی کردن یک استپ کامل میزان یک میلی متر را می پیماید. برای اینکه بتوانیم دقت کار را بیشتر کنیم باید این میزان را کمتر کنیم و در اینجاست که میکرو استپ به کمک ما میاید. حال با استفاده از میکرو استپ ۱/۸ همین موتور می تواند بجای یک استپ کامل هر بار یک هشتم یک استپ کامل را طی کنید و این یعنی دقت بالاتر و فاصله طی شده ی کمتر. این درایور امکان انتخاب بین یک استپ کامل تا ۱/۸ استپ را دارد و به صورت پیش فرض روی ۱/۸ تنظیم شده است. توصیه می شود برای دقت بیشتر این میزان را تغییر ندهید.

سایر پین های PFD/RST/ENABLE/SLP کاربرد های خاص خود را دارند که در اینجا در مورد آن ها توضیح داده نخواهند شد.

 

با توجه تصویر بالا سیم های مربوط به GND/5V STEP/DIR MA/MB M+/GND را وصل کنید. دقت کنید تحت هیچ شرایطی بخش ولتاژ ورودی موتور یعنی Power In را تا زمانی که تمامی سیم ها را وصل نکردید اعمال نکنید. همچنین در صورتی که این ولتاژ اعمال شده است سیم های موتور را قطع یا وصل نکنید. این کار ها و موارد این چنینی به درایور آسیب خواهد رساند.

کد زیر را می توانید با استفاده از این لینک دریافت نمایید. در صورتی که کار با برنامه ی آردوینو را بلد نیستید این آموزش را مطالعه نمایید. چنانچه تمامی مراحل را درست رفته باشید بعد از آپلود اسکچ موتور شروع به حرکت خواهد کرد و در هر دو جهت خواهد چرخید. دقت کنید که این کد تنها یک نمونه است و کاربرد عملی ندارد.

/*
آموزش استفاده از درایور های استپر A3967
*/
int dirPin = 12; /*پین مروبط به جهت گردش*/
int stepperPin = 13; /*پین مربوط به میزان حرکت یا استپ*/

void setup() {
  pinMode(dirPin, OUTPUT);
  pinMode(stepperPin, OUTPUT);
}

void step(boolean dir,int steps){
  digitalWrite(dirPin,dir);
  delay(50);
  for(int i=0;i<steps;i++){
    digitalWrite(stepperPin, HIGH);
    delayMicroseconds(100);
    digitalWrite(stepperPin, LOW);
    delayMicroseconds(100);
  }
}

void loop(){
  step(true,1600);
  delay(500);
  step(false,1600*5);
  delay(500);
}

 

این درایور قابل استفاده در تمامی پروژه هایی که شامل موتور های استپر بای پولار و یونی پولار(با حذف سیم مشترک) می شوند می باشد و تا زمانی که پین های کافی روی برد آردوینو وجود دارد محدودیتی در تعداد وجود نخواهد داشت. برای مثال با استفاده از برد آردوینو Uno و این درایور ها می توانید به راحتی یک CNC سه محوره بسازید، یا با استقاده از برد آردوینو Mega و این درایور ها یک پرینتر سه بعدی سه محوره و سه اکسترودر بسازید. ولی این به شرطی است که در پروژه ی شما بیشترین حد جریان برای هر درایور و هر موتور در نظر گرفته و لحاظ شده باشد.