کنترل موتور سروو آردوینو با استفاده از پتانسیومتر
در این آموزش، ما به بررسی نحوه کنترل یک موتور سروو با استفاده از یک پتانسیومتر و آردوینو خواهیم پرداخت. هدف ایجاد یک مدار ساده است که در آن موقعیت سروو بر اساس چرخش پتانسیومتر تنظیم میشود. در پایان این پروژه، شما یک مدل عملی خواهید داشت که به آرامی زاویه سروو را از ۰ تا ۱۸۰ درجه در حین چرخاندن پتانسیومتر تغییر میدهد. این یک روش عالی برای درک اصول ورودی آنالوگ و کنترل سروو در آردوینو است.
برای دستیابی به این هدف، ما از یک برد آردوینو، یک موتور سروو و یک پتانسیومتر استفاده خواهیم کرد. پتانسیومتر به عنوان یک مقاومت متغیر عمل میکند و ورودی آنالوگ را به آردوینو ارائه میدهد که سپس موقعیت موتور سروو را بر اساس آن تعیین میکند. این پروژه نه تنها سرگرمکننده است بلکه آموزشی نیز هست، زیرا مفاهیم کلیدی در الکترونیک و برنامهنویسی را نشان میدهد. برای توضیحات بیشتر، حتماً ویدیو را مشاهده کنید (در ویدیو در 00:00).
توضیح سختافزار
در این پروژه، اجزای اصلی شامل برد آردوینو، موتور سروو و پتانسیومتر هستند. آردوینو مغز عملیات است که ورودیها را پردازش کرده و خروجیها را کنترل میکند. موتور سروو بر اساس دستورات دریافتی از آردوینو بهطور فیزیکی حرکت خواهد کرد. پتانسیومتر میتواند از ۱ کیلو اهم تا ۱ مگا اهم باشد و به کاربران این امکان را میدهد که ورودی متغیری ارائه دهند که به حرکت سروو تبدیل میشود.
موتور سرو با دریافت سیگنال PWM (مدولاسیون عرض پالس) که موقعیت مورد نظر را نشان میدهد، کار میکند. پتانسیومتر، هنگامی که چرخانده میشود، مقاومت خود را تغییر میدهد که توسط آردوینو به عنوان یک ولتاژ آنالوگ خوانده میشود. موتور سرو با ۵ ولت کار میکند. با ۳.۳ ولت کار نمیکند. این ولتاژ سپس به دامنه حرکت موتور سرو نگاشته میشود و حرکت نرم از ۰ درجه تا ۱۸۰ درجه را امکانپذیر میسازد.
جزئیات برگه داده برای موتور سروو SG90
| تولیدکننده | پارالاکس |
|---|---|
| شماره قطعه | SG90 |
| ولتاژ منطقی/ورودی و خروجی | ۵ ولت |
| ولتاژ تأمین | ۴.۸-۶ ولت |
| جریان خروجی (به ازای هر کانال) | ~۵۰۰ میلی آمپر |
| جریان اوج (به ازای هر کانال) | ۱ A |
| راهنمایی فرکانس PWM | ۵۰ هرتز |
| آستانههای منطقی ورودی | ۰.۵ ولت (پایین)، ۲.۵ ولت (بالا) |
| افت ولتاژ / RDS(on)/ اشباع | ۰.۵ ولت در ۵۰۰ میلیآمپر |
| محدودیتهای حرارتی | ۰ درجه سانتیگراد تا ۶۰ درجه سانتیگراد |
| بسته | سروو استاندارد 9 گرم |
| یادداشتها / واریانتها | به طور معمول در برنامههای RC استفاده میشود |
- اطمینان حاصل کنید که سروو از حداکثر میزان جریان خود فراتر نرود.
- از یک هیت سینک استفاده کنید اگر سروو به طور مداوم تحت بارهای بالا کار میکند.
- پتانسیومتر را به یک پایه آنالوگ متصل کنید تا خوانشهای دقیقی داشته باشید.
- در مورد زمانبندی سیگنال PWM برای کنترل سروو احتیاط کنید.
- محدوده حرکت سروو را بررسی کنید تا از موانع فیزیکی جلوگیری شود.
دستورالعملهای سیمکشی


برای این تنظیم، شما باید اجزا را به صورت زیر متصل کنید:
پایه وسط پتانسیومتر (وایپر) را به پایه آنالوگ آردوینو متصل کنید.A0دو پایه دیگر پتانسیومتر باید به متصل شوند به5VوGNDبر روی آردوینو. برای موتور سرو، سیم قرمز را به5V، سیم سیاه بهGNDو سیم زرد یا سفید به پایه دیجیتال9بر روی آردوینو. این ترتیب اجازه میدهد تا پتانسیومتر یک ورودی آنالوگ به آردوینو ارائه دهد که موقعیت موتور سرو را بر اساس آن ورودی کنترل خواهد کرد.
اطمینان حاصل کنید که تمام اتصالات را بررسی کرده و مطمئن شوید که سروو در دامنه حرکتی خود مسدود نشده است. اگر از مدل دیگری از آردوینو استفاده میکنید، تأیید کنید که تخصیص پایهها برای ورودی آنالوگ و خروجی سروو سازگار است.
نمونههای شِفر (کود) و راهنمایی
در زیر بخشی از شِفر (کود) که سروو را راهاندازی کرده و مقدار پتانسیومتر را میخواند، آمده است:
#include
Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
در این شِفر (کود)، کتابخانه سروو را شامل میشویم و یک شیء سروو به نامmyservoسروو به پایه متصل است9که به ما اجازه میدهد تا آن را با استفاده از این پایه کنترل کنیم.
void loop() {
int sensorValue = analogRead(A0); // read the potentiometer
pos = map(sensorValue, 0, 1023, 0, 180); // map to servo position
myservo.write(pos); // move servo to position
delay(15); // waits 15ms for the servo to reach the position
}
در تابع حلقه، مقدار پتانسیومتر را از پایه میخوانیمA0و آن را از دامنهاش (۰-۱۰۲۳) به دامنه سروو (۰-۱۸۰ درجه) نگاشت کنید.myservo.write(pos)سپس فرمان سروو را به موقعیت مورد نظر بر اساس چرخش پتانسیومتر منتقل میکند.
نمایش / چه انتظاری باید داشت
زمانی که این برنامه را اجرا میکنید، باید ببینید که موتور سرو به آرامی از ۰ تا ۱۸۰ درجه حرکت میکند در حالی که پتانسیومتر را میچرخانید. اگر سرو به طور مورد انتظار حرکت نکرد، سیمکشی را بررسی کنید و اطمینان حاصل کنید که پتانسیومتر به درستی کار میکند. علاوه بر این، اطمینان حاصل کنید که آردوینو به درستی تغذیه میشود و شِفر (کود) بدون خطا بارگذاری شده است. شما میتوانید انتظار داشته باشید که سرو موقعیت پتانسیومتر را به صورت زنده نشان دهد (در ویدیو در ۰۲:۰۰).
زمانبندی ویدیو
- ۰۰:۰۰- مقدمهای بر پروژه
- ۰۱:۳۰توضیح تنظیمات سختافزاری
- ۰۳:۴۵- دستورالعملهای سیمکشی
- 05:00- مرور شِفر (کود)
- ۰۷:۳۰- نمایش پروژه تکمیل شده
منابع و مراجع
هنوز هیچ منبعی موجود نیست.
فایلها📁
هیچ فایلی موجود نیست.