در این مقاله قصد داریم با استفاده از یک پتانسیومتر، سرعت موتور استپر را با استفاده از درایور MSD02 و برد آردوینو (Arduino) کنترل کنیم (آردوینو و پتانسیومتر). شکل ۱ شماتیک سیمکشی اتصالات را نشان میدهد.
شکل شماتیک سیمکشی از اتصال یک پتانسیومتر، سرعت موتور استپر را با استفاده از درایور MSD02 و برد آردوینو
به نکات زیر دقت شود:
این کد شامل سه بخش میباشد:
در این بخش پین ۷ برای تعیین جهت، پین ۸ برای ارسال پالس و پین A5 برای مقدار آنالوگ دریافتی از پتانسومتر تعریف شدهاند. همچنین پین های ۷ و ۸ به عنوان خروجی و پین A5 به عنوان ورودی مشخص شدهاند.
int dirPin = 7; int stepperPin = 8; int pot=5; int Delay; void setup() { pinMode(dirPin, OUTPUT); pinMode(stepperPin, OUTPUT); pinMode(pot,INPUT); }
در این تابع دو عملیات انجام میشود:
۱- جهت دوران و تعداد پله؛
۲- سرعت تولید پالس بر اساس مقدار آنالوگ پتانسیومتر.
در برنامه حاضر، اگر مقدار آنالوگ کمتر از ۲۳ باشد، پالسی به پورت PUL فرستاده نمیشود. به عبارت دیگر سرعت موتور صفر خواهد بود. در غیر این صورت با افزایش مقدار آنالوگ پتانسیومتر مقدار متغییر Delay کاهش مییابد و پالسهایی سریعتر تولید میشوند. زیرا همانطور که در برنامه مشاهده میکنید، تابع delayMicroseconds به مقدار Delay بستگی دارد.
void step(boolean dir,int steps) { digitalWrite(dirPin,dir); delay(50); for(int i=0;i<steps;i++) { int bits= analogRead(pot); if (bits<23) { digitalWrite(stepperPin, LOW); } else { Delay=1023-bits; digitalWrite(stepperPin, HIGH); delayMicroseconds(Delay); digitalWrite(stepperPin, LOW); delayMicroseconds(Delay); } } }
در این حلقه در ابتدا درایور به اندازه ۱۶۰۰۰ پله در جهت ساعتگرد و پس از ۵۰۰ میلی ثانیه به مقدار ۹۰٫۰۰۰ پله در جهت پادساعتگرد دوران میکند و این روند ادامه مییابد.
void loop() { step(false,16000); delay(500); step(true,16000*5); delay(500); }
2 Comments
سلام جناب کلانی
میخواستم بدونم مدل استپ موتور استفاده شده چی هستش؟ و اینکه مثلا اگر بخوام از یک موتور قوی تر استفاده کنم چطوری درایور مربوط به اون را پیدا کنم. و اینکه کدها و آرایش برد تغییری می کند؟
با سلام
درایور MSD02 واسه موتورهای استپر دوفاز طراحی شده و تا جریان ۱.۸ آمپر رو پشتیبانی میکنه. واسه موتورهای دوفاز تا ۴ آمپر هم شرکت یه درایور جدید طرحی کرده به نام MSD04 که واسه اطلاعات بیشتر میتونین با شرکت تماس بگیرین. با درایور جدید هم آرایش برد و کدها تغییری نمیکنن.