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

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

در این آموزش می‌آموزیم چگونه یک موتور سروو را با استفاده از دو دکمه فشاری کنترل کنیم، یکی برای حرکت سروو به سمت چپ و دیگری برای حرکت آن به سمت راست. وقتی دکمهٔ سمت راست را فشار می‌دهید، سروو به اندازهٔ 10 درجه به سمت راست حرکت می‌کند و وقتی دکمهٔ سمت چپ را فشار می‌دهید، به همان میزان به سمت چپ حرکت می‌کند. اگر یک دکمه را نگه دارید، سروو به حرکت در آن جهت ادامه می‌دهد تا زمانی که آن را رها کنید.

این پروژه راهی عالی برای درک نحوهٔ اتصال دکمه‌ها به یک سرووموتور با استفاده از آردوینو است. ما قطعات سخت‌افزاری لازم، دستورالعمل‌های سیم‌کشی و کدی را که برای راه‌اندازی همهٔ این موارد لازم است پوشش خواهیم داد. برای درک بهتر می‌توانید به ویدیوی همراه این آموزش مراجعه کنید (در ویدیو در 01:00).

سخت‌افزار به زبان ساده

برای این پروژه به یک برد آردوینو، یک موتور سروو و دو دکمه فشاری نیاز خواهید داشت. موتور سروو مسئول ایجاد حرکت است، در حالی که دکمه‌های فشاری به‌عنوان ورودی برای کنترل جهت آن حرکت عمل می‌کنند. آردوینو این ورودی‌ها را پردازش کرده و سیگنال‌های مناسب را به سروو ارسال می‌کند.

موتور سروو بر اساس سیگنال‌های مدولاسیون عرض پالس (PWM) عمل می‌کند. با ارسال عرض پالس‌های مختلف می‌توانید زاویهٔ سروو را کنترل کنید. دکمه‌های فشاری به پایه‌های ورودی دیجیتال روی آردوینو متصل خواهند شد و برای ساده‌سازی سیم‌کشی از مقاومت‌های کشش داخلی (pull-up) استفاده خواهیم کرد.

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

تولیدکنندهمتنوع
شماره قطعهSG90
ولتاژ منطق/ورودی-خروجی۵ ولت
ولتاژ تغذیه4.8-6 ولت
جریان خروجی (در هر کانال)حداکثر 1.5 A
جریان پیک (برای هر کانال)حداکثر 2.5 A
راهنمای فرکانس PWM50 هرتز
آستانه‌های منطق ورودی0.3Vسی‌سیتا 0.7 ولتسی‌سی
افت ولتاژ / Rدرین-سورس (در حالت روشن)/ اشباع0.4 ولت
محدودیت‌های حرارتی85 درجه سانتی‌گراد
بستهپلاستیک
یادداشت‌ها / واریانت‌هاچرخش استاندارد 180°

  • اطمینان حاصل کنید که سروو برای ولتاژ تغذیه‌ی شما درجه‌بندی شده باشد.
  • هنگام کار با جریان‌های بالا، از سینک حرارتی مناسب استفاده کنید.
  • دکمه‌ها را در پیکربندی پول‌آپ به زمین متصل کنید.
  • اگر رفتار نامنظم مشاهده می‌کنید، برای دکمه‌هایتان debounce را اعمال کنید.
  • خروجی سریال را برای اشکال‌زدایی پایش کنید.

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

Arduino wriing for Sevo motor with 2 push buttons
Arduino wriing for Sevo motor with 2 push buttons

برای سیم‌کشی اجزا، با وصل کردن موتور سروو شروع کنید. سیم قرمز سروو را به پایهٔ 5V روی آردوینو، سیم سیاه را به پایهٔ GND و سیم سیگنال زرد یا سفید را به پایه 9 روی آردوینو وصل کنید. این پایه موقعیت سروو را کنترل خواهد کرد.

در ادامه، دکمه‌های فشاری را سیم‌بندی کنید. یک پایهٔ دکمهٔ راست را به پایه 2 و پایهٔ دیگر را به زمین متصل کنید. برای دکمهٔ چپ، یک پایه را به پایه 12 و پایهٔ دیگر را نیز به زمین متصل کنید. این پیکربندی اجازه می‌دهد مقاومت‌های pull-up داخلی پایه‌ها را وقتی دکمه‌ها فشرده نشده‌اند در سطح منطقی بالا (HIGH) نگه دارند.

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

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

int angle = 90;    // initial angle for servo
int angleStep = 10; // step size for movement

در این قطعه،angleنمایانگر موقعیت کنونی سروو است، در حالی کهangleStepمیزان حرکت سروو با هر بار فشردن دکمه را تعیین می‌کند. این شِفر (کود) برای ردیابی موقعیت سروو ضروری است.

در ادامه، تابع setup را داریم که در آن سروو را متصل می‌کنیم و پایه‌های ورودی را پیکربندی می‌کنیم:

void setup() {
  Serial.begin(9600);          // setup serial
  myservo.attach(9);  // attaches the servo on pin 9
  pinMode(2, INPUT_PULLUP); // configure button pin
}

در تابع setup، نمایشگر مسلسل را مقداردهی اولیه کرده و سروو را به پایهٔ 9 متصل می‌کنیم. دکمه روی پایهٔ 2 به‌عنوان ورودی با مقاومت پول‌آپ تنظیم شده است که سیم‌کشی را ساده کرده و نیاز به مقاومت‌های خارجی را از بین می‌برد.

در نهایت، به تابع loop نگاهی می‌اندازیم که فشردن دکمه را مدیریت می‌کند:

while(digitalRead(2) == LOW) {
  angle = angle + angleStep; // increment angle
  myservo.write(angle); // move servo
}

این حلقه به‌طور مداوم بررسی می‌کند که آیا دکمه فشرده شده است. وقتی فشرده شود، زاویه به اندازهٔ گام تعریف‌شده افزایش می‌یابد و سروو مطابق با آن حرکت می‌کند. ضروری است که زاویه در محدودهٔ 0 تا 180 درجه باقی بماند تا از آسیب به سروو جلوگیری شود.

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

وقتی دکمه راست را فشار می‌دهید، سروو باید به صورت گام‌های 10 درجه‌ای به سمت راست حرکت کند تا به حداکثر 180 درجه برسد. به همین ترتیب، فشار دادن دکمه چپ آن را به سمت چپ حرکت می‌دهد. اگر دکمه را نگه دارید، سروو تا زمانی که دکمه را رها نکنید در همان جهت به حرکت ادامه می‌دهد (در ویدیو در 01:00).

اشتباهات رایج شامل مشکلات سیم‌کشی هستند، مانند اتصالات نادرست یا ورودی‌های شناور. همیشه اطمینان حاصل کنید که اتصالات‌تان محکم هستند و از پایه‌های صحیح مطابق آنچه در شِفر (کود) مشخص شده استفاده می‌کنید.

تصاویر

Control a servo with a single push button using Arduino
Control Servo with single push button with Arduino
SG90_servo_motor-1
SG90_servo_motor-1
SG90_servo_motor-0
SG90_servo_motor-0
Arduino wriing for Sevo motor with 2 push buttons
Arduino wriing for Sevo motor with 2 push buttons
98-Control a servo with a single push button using Arduino
زبان: C++
99-Control a servo with two push buttons using Arduino
زبان: C++
کپی شد!

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

منابع و مراجع

هنوز هیچ منبعی موجود نیست.

فایل‌ها📁

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