به نام خدا
پروژه ی کنترل سروو موتور با آردوینو Due به همراه کد کامل
همان طور که قبلا نیز گفته شد آردوینو Due یک کنترل کننده ی ARM با بورد طراحی شده است که مورد توجه مهندسین الکترونیک واقع شده است. بورد Due می تواند برای ساخت ماشین سی ان سی ، پرینتر سه بعدی ، بازوی ربات و … مورد استفاده قرار گیرد. تمام این پروژه ها یک ویژگی مشترک دارند که کنترل موقعیت است. تمامیه این پروژه ها نیاز به دقت بالایی در تعیین حالت و موقعیتشان دارند. این هدف می تواند با سروو موتور محقق شود. در این قسمت ما قصد داریم تا موقعیت سروو موتور را با استفاده از آردوینو Due کنترل کنیم.
سروو موتور:
سروو موتور به دقیق بودن موقعیت حرکت شفت معروف هستند. این خصوصیت برای کاربرد های با سرعت بالا نیست و بیشتر برای سرعت های پایین مورد استفاده قرار می گیرد. این موتور ها در کنترل بازوی موتور و کنترل پرواز بسیار مورد استفاده قرار می گیرند. سروو موتور ها در بعضی پرینتر ها و ماشین های فکس نیز کاربرد دارند. یک سروو موتور ترکیبی از یک موتور DC ، سیستم کنترل موقعیت و چرخ دنده است . سروو موتور در دنیای امروز کاربرد فراوان دارد و در ابعاد و توانایی های مختلف تولید شده اند . ما در این آموزش از سروو موتور SG90 استفاده کرده ایم . سروو موتور SG90 یک سروو موتور ۱۸۰ درجه است و بین ۰ تا ۱۸۰ درجه می تواند بچرخد .
سروو موتور ها معمولا دارای سه سیم هستند ؛ قهوه ای ، قرمز و زرد ( یا سفید ) . سیم قهوه ای به زمین وصل می شود ، قرمز به ولتاژ مثبت وصل می شود و زرد به سیگنال PWM وصل خواهد شد . موقعیت شفت سروو موتور توسط پهنای پالس PWM تعیین می شود .فرکانس PWM میتواند بسته به نوع سروو موتور از دامنه ی تغییرات زیادی برخوردار باشد. در آردوینو یک دستور مخصوص برای تنظیم موقعیت سروو موتور داریم. این کار با تنظیم زاویه و حالت آن امکان پذیر است.
قطعات مورد نیاز کنترل سروو موتور با آردوینو Due :
سخت افزار:
آردوینو Due
منبع تغذیه ۵ ولتی
سروو موتور
نرم افزار:
Arduino nightly شما می توانید این نرم افزار را از لینک https://www.arduino.cc/en/Main/Software دانلود کنید.
توضیحات نصب این نرم افزار در لینک Getting Started with Arduino Due قابل مشاهده است.
شماتیک مدار و توضیحات آن :
همان طور که گفته شد در آردوینو کتابخانه هایی برای تنظیم فرکانس و … موجود است.
در آردوینو ما به سادگی میتوانیم موقعیت سروو موتور را کنترل کنیم . برای دستیابی به موقعیت دقیق سروو موتور باید کار های زیر را انجام بدهیم.
-
#include <Servo.h>
-
Servo myservo;
-
myservo.attach(servo_signal_pin_attached_to);
-
myservo.write(needed_position_ angle);
هدر “#include <Servo.h>” شامل تمامیه توابعی که مورد نیازمان خواهد شد می باشد. با فراخوانی این کتابخانه ها دیگر نگرانی برای فرکانس PWM و DUTY RATIO وجود نخواهد داشت. به این ترتیب کاربر به راحتی می تواند موقعیت سروو موتور را بدون سردرگمی به طور دقیق وارد کند.
دانلود کد برنامه کنترل سروو موتور با آردوینو Due :
دانلود فایل#include <Servo.h> Servo myservo; // providing a name int angle = 0; // variable to store the servo position void setup() { myservo.attach(2); // attaches the servo on pin 2 to the servo object } void loop() { for (angle = 0; angle <= 180; angle += 1) { // goes from 0 degrees to 180 degrees, in steps of 1 degree myservo.write(angle); // tell servo to go to position in variable 'angle' delay(15); // waits 15ms for the servo to reach the position } for (angle = 180; angle >= 0; angle -= 1) { // goes from 180 degrees to 0 degrees myservo.write(angle); delay(15); // waits 15ms for the servo to reach the position } }
دیدگاهها (0)