راه‌اندازی سروموتور با آردوینو

0
99
راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

مقدمه

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

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

سروموتور در روباتیک بسیار کاربردی هستند. موتورهای سروو کوچک هستند و مداربندی کنترل توکار دارند و بخاطر اندازه شان بسیار قدرتمند هستند. یک موتور سروو استاندارد مثل فوتابا اس-148 گشتاور 42 اونس بر اینچ دارد که برای اندازه‌اش قوی است. همچنین توان مکانیکی را متناسب با بار مکانیکی مصرف می‌کند. در نتیجه یک موتور با بار کوچک انرژی زیادی مصرف نمی‌کند.

اجزای یک موتور سروو در تصویر زیر نشان داده شده است. در این شکل می‌توانید مدارات کنترلی، دنده‌ها و محفظه را ملاحظه کنید. همچنین می‌توانید سه سیم را که به فضای بیرونی متصل شده اند را ببینید. یکی برای تغذیه 5+ ولت، زمین و سیم سفید سیم کنترل است.

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

 

طرز کار یک موتور سروو

یک موتور سروو تعدادی مدارات کنترل و یک پتانسیومتر(مقاومت متغیر) که به محور خارجی متصل است دارد. در تصویر بالا  پتانسیومتر در سمت راست برد مدار مشاهده می‌شود. این پتانسیومتر به مدار اجازه ی کنترل زاویه و جهت جریان موتور را می‌دهد.

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

چگونه جهتی که موتور باید بچرخد را کنترل می‌کنیم؟

سیم کنترل برای این امر استفاده می‌شود. زاویه توسط طول مدت پالسی که به سیم کنترل اعمال می‌شود مشخص می‌شود. این پالس PCM یا مدولاسیون کد شده پالسی نامیده می‌شود(مشابه PWM). موتور انتظار دارد که هر 20میلی ثانیه یک پالس به آن اعمال شود. طول پالس معین می‌کند که موتور تا چه مسافتی گردش می‌کند. برای مثال یک پالس 1.5 میلی ثانیه ای باعث می‌شود موتور  90درجه گردش کند (که اغلب موقعیت خنثی نامیده می‌شود). اگر پالس کوتاه تر از 1.5میلی ثانیه باشد موتور محور را نزدیک به صفر درجه می‌چرخاند. اگر پالس بلند تر از 1.5 میلی ثانیه باشد، محور نزدیک به 180درجه می‌چرخد.

 

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

تجهیزات لازم:

  • یک برد آردوینو
  • سروموتور
  • تراشه راه‌انداز ULN2003
  • یک مقاومت 10 کیلو اهم

سخت‌افزار

مطابق شکل زیر سخت‌افزار پروژه را آماده کنید:

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

برنامه

نرم‌افزار آردوینو را در کامپیوتر خود باز کنید. کد نوشته شده برای آردوینو مدار شما را کنترل خواهد کرد. یک فایل جدید با کلیک کردن روی New باز کنید و کدهای زیر را وارد کنید:

/* Controlling a servo position using a potentiometer (variable resistor) */ #include <Servo.h> Servo myservo;    // create servo object to control a servo int potpin = 0;    // analog pin used to connect the potentiometer int val;      // variable to read the value from the analog pin void setup() {   myservo.attach(9);  // attaches the servo on pin 9 to the servo object } void loop() { val = analogRead(potpin);   // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 180);   // scale it to use it with the servo (value between 0 and 180)   myservo.write(val);   // sets the servo position according to the scaled value   delay(15); }

نکات

موتور‌های سروو سه پایایه دارند: تغذیه، زمین و سیگنال. سیم تغذیه معمولا قرمز است و باید به پایه‌ی 5 ولت روی آردوینو وصل شود. سیم زمین معمولا مشکی یا قهوه‌ای است و باید به یک پایه از آی سی ULN2003 وصل شود.

برای محافظت از برد آردوینو خود در برابر آسیب به تعدادی آی سی راه‌انداز نیاز دارید. اینجا ما از آی سیULN2003 برای راه‌اندازی موتور سروو استفاده کرده‌ایم. پایه‌ی سیگنال معمولا زرد یا نارنجی است و باید به پایه شماره 9 آردوینو متصل شود.

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

متصل کردن پانسیومتر

یک مقسم ولتاژ شامل مقاومت‌هایی است در یک آرایش سری که ولتاژ خروجی را به یک نسبت خروجی مشخص از ولتاژ ورودی اعمال شده تنظیم می‌کند. در زیر شکل مدار نشان داده شده است.

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

Vout ولتاژ خروجی هست که به ولتاژ ورودی اعمال شده (vin) و مقاومت‌های سری (R1 و R2) بستگی دارد. جریانی که از R1 جاری می‌شود از R2 نیز عبور می‌کند بدون اینکه تقسیم شود. در معادله‌ی بالا اگر مقدار R2 تغییر کند vout با ولتاژ ورودی vin تنظیم می‌شود. معمولا یک پتانسیومتر یک تقسیم کننده ولتاژ است که می‌تواند ولتاژ خروجی مدار را بر اساس مقدار مقاومت متغیر تنظیم کند که با استفاده یک دکمه تنظیم می‌شود. این دکمه سه پایه دارد: زمین و سیگنال و 5V که در شکل زیر نشان داده شده است.

 

راه اندازی سروموتور با آردوینو
راه اندازی سروموتور با آردوینو

نتیجه :

پتانسیومتر را تغییر دهید و زاویه محور موتور تغییر خواهد کرد.

امیدوارم این مطلب برای شما آموزنده بوده باشد.

 

منبع:  میکرودیزاینرالکترونیک

 

مطلب قبلیتضعیف کننده پسیو
مطلب بعدیکنترل کامپیوتر با حرکات دست با آردوینو و ماژول اولتراسونیک

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید