درایور موتور ULN2003
موتور یکی از اجزای اصلی هر دستگاهی است که شناخت بهتر آن می تواند به نحوه استفاده و یا نگهداری بهتر هر محصول کمک نماید. درایور موتور ULN2003 یکی از پر کاربرد ترین درایور ها برای راه اندازی استپر موتور می باشد. استپر موتور را در واقع می توان یک دستگاه الکترومکانیکی نامید که با دریافت پالس های مکانیکی و تبدیل آن ها به حرکت های مکانیکی مجزا کار می کند. استپر موتور بسته به نوع ساخت و کاربردی که دارد می تواند به صورت های مختلف راه اندازی شود که یکی از این روش ها استفاده از تراشه درایور موتور ULN2003 می باشد.
ویژگی ها و امکانات درایور موتور ULN2003
این محصول به دلیل امکانات مناسبی که در ساختار خود دارد مورد توجه بیشتر شرکت ها برای استفاده در استپر موتور شده است. در استفاده از این محصول باید به نکاتی مهم توجه کرد تا این درایور به راحتی باعث افزایش کارایی و کیفیت موتور شود.
درایور موتور ULN2003 از 7 پایه ورودی در ساختار خود بهره می برد که هنگام اتصال این تراشه به استپر موتور از این ورودی ها استفاده می کنیم.
با توجه به تعداد ورودی های زیاد این درایور می توان از آن برای استپ موتورهای چهار سیم و شش سیم استفاده نمود.
3.5 تا 5.5 ولت عددی است که بیانگر ولتاژ کاری درایور موتور ULN2003 می باشد. برای استفاده از این درایور باید تا 500 میلی آمپر جریان ایجاد نمود.
هنگام اتصال این درایور ها باید به دمای محیط و مکانی که قرار است در آن به کار روند توجه بسیار نمود. دمایی که این درایور ها می توانند به راحتی در آن فعالیت خود را بدون هیچ مشکلی ادامه دهند بین منفی 25 تا مثبت 90 درجه سانتی گراد است.
برای کارکرد بهتر درایور موتور ULN2003 معمولاً می توانیم از دو پایه VCC و GND استفاده نماییم تا این درایور به راحتی بتواند به میکرو کنترلر برد دستگاه متصل شود.
نحوه راه اندازی درایور موتور uln2003
در جدول زیر نحوه راه اندازی یک استپ موتور به صورت Half Step نمایش داده شده است:
در جدول بالا مراحل اعمال تغذیه برای گردش نیم پله یک استپ موتور چهار سیم را نشان می دهد که طی هشت مرحله انجام می شود.
1- به این صورت که در مرحله اول فقط سیم پیچ اول یا سیم نارنجی با اعمال ورودی مثبت به ورودی درایور موتور uln2003 تحریک می شود
توضیح: با اعمال ورودی مثبت به درایور در واقع خروجی آن معکوس (بعنی صفر) می شود، بنابراین جریان در سیم پیچ اول آن برقرار می شود و باعث ایجاد یک پله حرکت در موتور می شود
2- در مرحله بعد مرحله شماره دو تحریک سیم پیچ اول (نارنجی) و سیم پیچ دوم (زرد) همزمان انجام می شود که باعث نیم پله حرکت نسبت به مرحله قبل می شود.
3- در مرحله سوم تحریک فقط به سیم پیچ دوم(زرد) اعمال می شود.
و مراحل 4 الی 8 نیز همانند مراحل بالا طبق جدول ارائه شده به ترتیب انجام می شود.
نکته: ترتیب اجرای مراحل (اعمال تحریک) مهم است و در صورتی که ترتیب اعمال تغذیه به درستی انجام نشود حرکت موتور دچار اختلال خواهد شد.
نمونه کد برای راه اندازی یک استپ موتور چهارسیم با درایور موتور uln2003
در زیر نمونه کد برای راه اندازی یک استپ موتور چهار سیم با آردوینو قرار داده شده است:
byte CCW[8] = {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
byte CW[8] = {0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
const int stop_key = 14; //stop_button connect to Arduino-A0
byte change_angle=64; //change the parameter to change the angle of the stepper
void Motor_CCW() //the steper move 360/64 angle at CouterClockwise
{
for(int i = 0; i < 8; i++)
for(int j = 0; j < 8; j++)
{
if(digitalRead(stop_key)==0)
{
PORTB =0xf0;
break;
}
PORTB = CCW[j];
delayMicroseconds(1150);
}
}
void Motor_CW() //the steper move 360/64 angle at Clockwise
{
for(int i = 0; i < 8; i++)
for(int j = 0; j < 8; j++)
{
if(digitalRead(stop_key)==0)
{
PORTB =0xf0;
break;
}
PORTB = CW[j];
delayMicroseconds(1150);
}
}
void setup()
{
pinMode(stop_key,INPUT);
digitalWrite(stop_key,HIGH);
Serial.begin(57600);
DDRB=0xff;
PORTB = 0xf0;
for(int k=0;k<change_angle;k++)
{
Motor_CCW();
}
}
void loop()
{
Motor_CCW(); //make the stepper to anticlockwise rotate
}
در کد بالا دو خط زیر همان جدول توضیح داده شده می باشد که به صورت یک آرایه تعریف شده و به ترتیب به درایور موتور uln2003 اعمال میشود:
byte CCW[8] = {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
byte CW[8] = {0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
روح الله امین دوستی –
سلام. با این ماژول به تنهایی میشه استپر موتور 5 ولتو به حرکت در اورد؟؟
info –
بستگی به سایز و توان موتور داره ولی موتور های با جریان کم رو میشه درایو کرد