راه اندازی سرو موتور توسط آردوینو
سرو موتور ( Servo Motor ) متشکل از یک موتور الکتریکی ساده است که در کنار موتور تعدادی المان الکترونیکی به منظور کنترل زاویه ، سرعت و یا شتاب به شفت موتور متصل می شوند و کلیه المان ها به همراه موتور در یک پکیج واحد ارائه می شوند. سرو موتور ها ممکن است دارای گیربکس یا فاقد گیربکس باشد و اندازه های بسیار کوچک برای مصارف ساخت تجهیزات مکاترونیکی مانند ربات ها و هواپیما های مدل تا اندازه های بزرگ برای دستگاه های صنعتی ساخته می شوند. در حوزه میکروکنترلر ، آنچه که از سروو موتور مشاهده می نماییم معمولا یک موتور DC جاروبک دار است که به کمک یک سری چرخدنده ( گیربکس ) به یک پتانسیومتر داخلی وصل شده است و خروجی گیربکس نیز از طرف دیگر خارج شده است. پتانسیومتر فقط وضعیت خروجی را کنترل می کند و کاری به وضعیت موتور ندارد.
پتانسیومتر به یک مدار الکترونیکی در داخل پکیج متصل است که وظیفه ی این مدار ، دریافت فرامین از سیم سیگنال و کنترل وضعیت خروجی گیربکس است. دقت نمایید در اکثریت سرو موتور هایی که ما از آنها استفاده خواهیم نمود ، منظور از کنترل وضعیت ، کنترل زاویه شافت خروجی گیربکس است.
برد کنترل سرو موتور یک فرمان را به صورت یک پالس PWM با فرکانس 50 هرتز ( دوره تناوب : 20 میلی ثانیه ) دریافت می کند و بر اساس عرض پالس دریافتی ، زاویه ای که باید شافت در آن قرار بگیرد یا به عبارتی مقدار مقاومت مطلوب پتانسیومتر را مشخص می نماید. ( معمولا در صورتی که عرض پالس 1 میلی ثانیه باشد ، زاویه 0 و در صورتی که عرض پالس 2 میلی ثانیه باشد زاویه ماکزیمم در نظر گرفته می شود ، در مورد برخی از موتور ها ممکن است عرض پالس بازه متفاوتی مانند 0.5 تا 2.5 میلی ثانیه را داشته باشد ، اما روش کار به یک شکل است ) پس از مشخص شدن مقدار مقاومت مطلوب پتانسیومتر ، کنترلر موتور DC را روشن می کند و مادامی که مقدار مقاومت پتانسیومتر به مقدار مطلوب نرسیده است ، موتور را روشن نگه می دارد ، تعیین جهت موتور بر اساس مقدار فعلی پتانسیومتر و مقدار مطلوب ، توسط کنترلر تعیین می شود.
سرو موتور ها معمولا دارای 3 سیم هستند و 2 سیم مربوط به تغذیه است و همواره باید متصل باشد و یک سیم مربوط به PWM ( مدولاسیون عرض پالس ) است که با دریافت پالس معتبر ، کنترلر موتور را روشن می کند و در وضعیت جدید قرار می دهد ، در غیر اینصورت موتور وضعیت قبلی را حفظ می کند.
سرو موتور های کوچک الکترونیکی دارای قدرت های مختلف از حدود چند صد گرم بر سانتی متر مربع تا چند ده کیلوگرم بر سانتی متر مربع هستند و به سادگی قابل تهیه و به صورت مستقیم بواسطه میکروکنترلر قابل کنترل هستند.
حال که با مقدمات لازم در ورد سروو موتور آشنا شدیم می خواهیم آن را با استفاده از آردوینو راه اندازی کنیم.
قطعات لازم برای راه اندازی سروو موتور عبارتند از:
برای راه اندازی سروو موتور در آردوینو در ابتدا باید کتابخانه آن را به کامپایلر معرفی کنیم.
برای این کار از دستور زیر در اولین خط برنامه استفاده می کنیم.
#include <Servo.h>
تعریف یک سرو موتور جدید : بعد از فراخوانی کتابخانه باید یک سروو موتور با اسم دلخواه تعریف کنیم.
Servo servo1;
مشخص کردن پین کنترل سروو : تعیین پایه ای از پایه های pwm که به سروو موتور متصل شده است. pin شماره پین مورد نظر می باشد.
servo.attach(pin);
تعیین زاویه گردش سروو : تعیین زاویه سرو موتور که باید به تابع عددی بین ۰ تا ۱۸۰ داده شود.
servo.write(Angle);
می خواهیم با استفاده از توابع و اطلاعاتی که بیان شده است پروژه ای را به این صورت که زاویه گردش موتور با پتانسیومتر تنظیم گردد انجام دهیم.
شماتیک مدار
نمونه کد استفاده شده در پروژه
#include <Servo.h> int potPin = 0; int servoPin = 9; Servo servo; void setup() { servo.attach(servoPin); } void loop() { int reading = analogRead(potPin); // 0 to 1023 int angle = reading / 6; // 0 to 180-ish servo.write(angle); }
ممنون خیلی خوب بود.
ببخشید من یه سوال کلی داشتم
میشه مزیت ها و معایب اردوینو و رزبری پای را یه شرح بدید؟؟؟؟
ممنون
در انجمن مطرح کنید
ببخشید امکان چپگرد راست گرد نداریم تو سرو موتور؟ آیا؟
چرا نداشته باشیم؟ به راحتی این امکان هست.
ممنون، اینجا اشاره ای نشد بخاطر اون گفتم..