ساختار موتورهای استپر (پله ای)
۳ بهمن ۱۳۹۷هزینه طراحی و تولید درایور موتور دی سی جریان بالا
۳ بهمن ۱۳۹۷اتصال درایور MSD02، برد آردوینو و پتانسیومتر
در این مقاله قصد داریم با استفاده از یک پتانسیومتر، سرعت موتور استپر را با استفاده از درایور MSD02 و برد آردوینو (Arduino) کنترل کنیم (آردوینو و پتانسیومتر). شکل ۱ شماتیک سیمکشی اتصالات را نشان میدهد.
به نکات زیر دقت شود:
- ولتاژ منبع بین ۸ – ۴۰ ولت تنظیم گردد.
- پین ۷ آردوینو برای تعیین جهت مشخص شود.
- پین ۸ آردوینو برای ارسال پالس استفاده میشود.
- خروجی وسط پتانسیومتر را به پورت A5 متصل کنید.
این کد شامل سه بخش میباشد:
بخش اول: تعریف متغییرها
در این بخش پین ۷ برای تعیین جهت، پین ۸ برای ارسال پالس و پین A5 برای مقدار آنالوگ دریافتی از پتانسومتر تعریف شدهاند. همچنین پین های ۷ و ۸ به عنوان خروجی و پین A5 به عنوان ورودی مشخص شدهاند.
int dirPin = 7; int stepperPin = 8; int pot=5; int Delay; void setup() { pinMode(dirPin, OUTPUT); pinMode(stepperPin, OUTPUT); pinMode(pot,INPUT); }
بخش دوم: تعریف تابع step
در این تابع دو عملیات انجام میشود:
۱- جهت دوران و تعداد پله؛
۲- سرعت تولید پالس بر اساس مقدار آنالوگ پتانسیومتر.
در برنامه حاضر، اگر مقدار آنالوگ کمتر از ۲۳ باشد، پالسی به پورت 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 که واسه اطلاعات بیشتر میتونین با شرکت تماس بگیرین. با درایور جدید هم آرایش برد و کدها تغییری نمیکنن.