به نام خدا
آموزش پروژه محور آردوینو – جلسه چهاردهم سروو موتور
در این جلسه می خواهیم یک سروو موتور را با استفاده از آردوینو کنترل کنیم .
ابتدا یک برنامه برای حرکت رفت و برگشتی سروو می نویسیم و سپس یک پتانسیومتر به مدار خود اضافه می کنیم و موقعیت سروو را با پتانسیومتر کنترل می کنیم .
قطعات مورد نیاز پروژه :
– سروو موتور
– پتانسیومتر ۱۰ کیلو اهمی
– بردبورد
– برد آردوینو UNO
– تعدادی سیم
– خازن ۱۰۰ میکرو فاراد
شماتیک مدار رفت و برگشتی سروو :
شماتیک مدار به صورتی است که فقط سروو موتور به آردوینو متصل می شود .
سروو موتور سه پایه دارد که عموما به این سه پایه سه سیم به رنگ های قهوه ای ، قرمز و نارنجی وصل می شوند . سیم قهوه ای باید به زمین وصل شود ، سیم قرمز به ۵ ولت و سیم نارنجی به سیگنال PWM وصل شود . سیم نارنجی را به پین شماره ۹ آردوینو وصل کرده ایم .
اگر سروو موتور به خوبی کار نکرد و شما شاید ببینید موقعی این اتفاق می افتد که برد آردوینو به پورت USB متصل شده است . زیرا سروو موتور توان زیادی می کشد خصوصا موقع حرکت اول . این کشیدن توان باعث کاهش ناگهانی ولتاژ می شود ، این بالا و پایین شدن ولتاژ باعث عملکرد نامناسب سروو موتور می شود .
این مشکل با گذاشتن یک خازن در حد چند صد میکروفاراد بین زمین و ۵ ولت حل می شود .
خازن به عنوان یک مخزن الکتریکی برای سروو موتور عمل می کند به طوری که از برد آردوینو شارژ می شود و در مواقع کمبود توان برای سروو ، توان خود را به سروو می دهد . سر منفی خازن معمولا به علامت منفی مشخص می شود .
کد های آردوینو برای عملکرد رفت و برگشتی آردوینو :
برنامه را بر روی برد آردوینو آپلود کنید . با آپلود کردن این برنامه بر روی برد آردوینو و روشن کردن برد ، سروو موتور به صورت رفت و برگشتی به چپ و راست حرکت خواهد کرد .
برای دانلود برنامه بر روی لینک زیر کلیک کنید .
دانلود فایل
در خط زیر کتابخانه servo را اضافه کرده ایم . این کتابخانه این امکان را به می دهد که بتوانیم به سروو موتور زاویه بدهیم یعنی عددی که در آردوینو وارد می کنیم همان زاویه سروو موتور است .
#include <Servo.h>
خط زیر برای تعریف سروو است .
Servo servo;
اگر بخواهیم سروو بیشتری را تعریف کنیم می توانیم به صورت خطوط زیر عمل کنیم .
Servo servo1; Servo servo2;
در تابع setup باید شماره پین را که سروو موتور به آن وصل است مشخص کنیم .
servo.attach(servoPin);
توسط خط زیر می توانیم به سروو موتور زاویه بدهیم .
servo.write(angle);
شماتیک مدار سروو با پتانسیومر :
با این مدار می توانیم به کمک چرخش پتانسیومتر ، زاویه سروو را کنترل کنیم .
پایه وسط پتانسیومتر را باید به پین A0 آردوینو وصل کنیم .
کد های آردوینو برای کنترل زاویه با پتانسیومتر :
کد های برنامه آردوینو را از لینک زیر دانلود کنید .
دانلود فایل
همان طور که در برنامه بالا دیدید ، عددی را که از مبدل آنالوگ به دیجیتال دریافت می کنیم عددی بین ۰ تا ۱۰۲۳ است که بر عدد ۶ تقسیم می کنیم تا تقریبا نزدیک به ۱۸۰ شود . ۱۰۲۳ بر ۶ تقسیم شود برابر ۱۷۰٫۵ می شود این یعنی ما سروو را با چرخش پتانسیومتر از ۰ تا ۱۷۰ تغییر می دهیم .
سروو موتور ها :
موقعیت موتور سروو با پهنای پالس تنظیم می شود . سروو موتور تقریبا هر ۲۰ میلی ثانیه یک پالس نیاز دارد . اگر پهنای پالس ارسالی یک میلی ثانیه باشد سروو در موقعیت صفر درجه قرار می گیرد و اگر پهنای پالس ۱٫۵ میلی ثانیه باشد در مرکز یعنی در ۹۰ درجه قرار می گیرد و اگر پهنای پالس ۲ میلی ثانیه باشد سروو در وضعیت ۱۸۰ درجه قرار دارد .
پایان جلسه چهاردهم
دیدگاهها (0)