کنترل یک سروو با پتانسیومتر با استفاده از آردوینو

کنترل یک سروو با پتانسیومتر با استفاده از آردوینو

در این آموزش، خواهیم آموخت چگونه با استفاده از یک پتانسیومتر و یک آردوینو، یک موتور سروو را کنترل کنیم. پتانسیومتر به ما امکان می‌دهد زاویه سروو را به‌طور نرم تنظیم کنیم و کنترل بلادرنگ بر موقعیت آن داشته باشیم. در پایان این پروژه، یک سامانه کاربردی خواهید داشت که مقدار پتانسیومتر و زاویه متناظر سروو را نمایش می‌دهد.

با چرخاندن پتانسیومتر، زاویه سروو موتور از 0 تا 180 درجه تغییر می‌کند. ما از ورودی آنالوگ آردوینو برای خواندن مقدار پتانسیومتر استفاده خواهیم کرد و سپس با استفاده از یک فرمول ساده این مقدار را به بازه سروو نگاشت خواهیم کرد. این پروژه راهی عالی برای درک نحوه کار ورودی‌های آنالوگ و نحوه کنترل موتورها با آن‌هاست (در ویدیو در 01:45).

توضیح سخت‌افزار

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

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

جزئیات مشخصات فنی

تولیدکنندهمتنوع
شماره قطعهسروو استاندارد
ولتاژ منطق/ورودی‌خروجی5 ولت
ولتاژ تغذیه4.8 - 6 V
جریان خروجی (برای هر کانال)تا 1 A
جریان پیک (برای هر کانال)تا 2 A
راهنمای فرکانس PWM50 هرتز
آستانه‌های منطقی ورودی0.8 V (پایین) / 2.0 V (بالا)
افت ولتاژ / Rدرین-سورس (روشن)/ اشباع0.5 ولت
محدودیت‌های حرارتی85 درجه سانتی‌گراد
بستهسایز استاندارد
یادداشت‌ها / انواعدر اندازه‌ها و رده‌های گشتاور مختلف موجود است

  • اطمینان حاصل کنید که منبع تغذیه در محدودهٔ مجاز (4.8 - 6 V) قرار دارد.
  • برای پتانسیومتر از مقدار مقاومت مناسب استفاده کنید (10 kΩ توصیه می‌شود).
  • قطبیت اتصالات را بررسی کنید تا از عملکرد معکوس جلوگیری شود.
  • مراقب گرما باشید؛ مطمئن شوید که سروو تحت بار اضافی قرار نگرفته است.
  • برای کاهش تداخل، سیم‌کشی را کوتاه نگه دارید.
  • در صورت نیاز، از خازن‌های دکوپلینگ بین ورودی‌های تغذیه استفاده کنید.
  • مطمئن شوید که پتانسیومتر به‌درستی به پایه آنالوگ A0 متصل شده است.

دستورالعمل‌های سیم‌کشی

Arduino wiring or servo motor with pot
Arduino wiring or servo motor with pot

برای سیم‌کشی قطعات، ابتدا پتانسیومتر را وصل کنید. پایهٔ میانی پتانسیومتر باید به پایه آنالوگ متصل شود.A0روی آردوینو. پایه سمت چپ باید به پایه 5V متصل شود و پایه سمت راست باید به زمین (GND) وصل شود.

سپس موتور سروو را متصل کنید. سیم زمین (معمولاً مشکی یا قهوه‌ای) موتور سروو باید به پایه GND آردوینو متصل شود. سیم تغذیه (معمولاً قرمز) باید به پایه 5V روی آردوینو وصل شود. در نهایت، سیم کنترل (اغلب زرد یا سفید) باید به پایه دیجیتال متصل شود.9روی آردوینو. این پیکربندی به آردوینو اجازه می‌دهد تا سروو را بر اساس موقعیت پتانسیومتر کنترل کند.

Arduino Schemtic of wiring servo motor with pot

نمونه‌های شِفر (کود) و راهنمای گام‌به‌گام

بیایید نگاهی به بخش‌های کلیدی شِفر (کود) بیندازیم. اول، کتابخانه Servo را وارد می‌کنیم و یک شیء سروو ایجاد می‌کنیم:

#include 
Servo myservo;  // create servo object to control a servo

این شِفر (کود) سروو را مقداردهی اولیه کرده و آن را برای کنترل آماده می‌کند. گام بعدی شامل خواندن مقدار پتانسیومتر است:

int val = analogRead(potpin); // reads the value of the potentiometer

در اینجا مقدار خوانده‌شده از پتانسیومتر در متغیر ذخیره می‌شود.val. این مقدار بین 0 و 1023 خواهد بود که متناظر با موقعیت پتانسیومتر است. سپس این مقدار را به محدوده سروو نگاشت می‌کنیم:

val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo

این خط مقدار پتانسیومتر را به محدوده‌ای تبدیل می‌کند که برای موتور سروو مناسب است. در نهایت، سروو را در موقعیت محاسبه‌شده قرار می‌دهیم:

myservo.write(val); // sets the servo position according to the scaled value

این فرمان به سروو می‌گوید تا بر اساس موقعیت پتانسیومتر به زاویهٔ مشخص‌شده حرکت کند. شِفر (کود) کامل بارگذاری‌شده را می‌توانید در پایینِ مقاله پیدا کنید.

نمایش / آنچه باید انتظار داشته باشید

وقتی برنامه را اجرا می‌کنید، چرخاندن پتانسیومتر زاویه موتور سروو را به‌صورت روان تنظیم می‌کند. باید هنگام چرخاندن دستگیره مقادیر زاویه در نمایشگر مسلسل چاپ شوند. اگر سروو رفتار غیرمنتظره‌ای نشان داد، سیم‌کشی خود را بررسی کنید، به‌ویژه اتصالات پتانسیومتر و سروو (در ویدئو در 04:30).

سِرو باید بلافاصله به تغییرات موقعیت پتانسیومتر واکنش نشان دهد. اگر متوجه هرگونه تأخیر یا پرش شدید، کاهش تأخیر در شِفر (کود) را برای بهبود پاسخ‌دهی در نظر بگیرید.

تصاویر

Arduino wiring or servo motor with pot
Arduino wiring or servo motor with pot
Arduino Schemtic of wiring servo motor with pot
Arduino Schemtic of wiring servo motor with pot
SG90_servo_motor-1
SG90_servo_motor-1
SG90_servo_motor-0
SG90_servo_motor-0
96-Controlling a servo position using a potentiometer
زبان: C++
کپی شد!

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

منابع و مراجع

فایل‌ها📁

هیچ فایلی موجود نیست.