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

این پروژه راهی عالی برای درک نحوهٔ اتصال دکمهها به یک سرووموتور با استفاده از آردوینو است. ما قطعات سختافزاری لازم، دستورالعملهای سیمکشی و کدی را که برای راهاندازی همهٔ این موارد لازم است پوشش خواهیم داد. برای درک بهتر میتوانید به ویدیوی همراه این آموزش مراجعه کنید (در ویدیو در 01:00).
سختافزار به زبان ساده
برای این پروژه به یک برد آردوینو، یک موتور سروو و دو دکمه فشاری نیاز خواهید داشت. موتور سروو مسئول ایجاد حرکت است، در حالی که دکمههای فشاری بهعنوان ورودی برای کنترل جهت آن حرکت عمل میکنند. آردوینو این ورودیها را پردازش کرده و سیگنالهای مناسب را به سروو ارسال میکند.
موتور سروو بر اساس سیگنالهای مدولاسیون عرض پالس (PWM) عمل میکند. با ارسال عرض پالسهای مختلف میتوانید زاویهٔ سروو را کنترل کنید. دکمههای فشاری به پایههای ورودی دیجیتال روی آردوینو متصل خواهند شد و برای سادهسازی سیمکشی از مقاومتهای کشش داخلی (pull-up) استفاده خواهیم کرد.
جزئیات مشخصات فنی
| تولیدکننده | متنوع |
|---|---|
| شماره قطعه | SG90 |
| ولتاژ منطق/ورودی-خروجی | ۵ ولت |
| ولتاژ تغذیه | 4.8-6 ولت |
| جریان خروجی (در هر کانال) | حداکثر 1.5 A |
| جریان پیک (برای هر کانال) | حداکثر 2.5 A |
| راهنمای فرکانس PWM | 50 هرتز |
| آستانههای منطق ورودی | 0.3Vسیسیتا 0.7 ولتسیسی |
| افت ولتاژ / Rدرین-سورس (در حالت روشن)/ اشباع | 0.4 ولت |
| محدودیتهای حرارتی | 85 درجه سانتیگراد |
| بسته | پلاستیک |
| یادداشتها / واریانتها | چرخش استاندارد 180° |
- اطمینان حاصل کنید که سروو برای ولتاژ تغذیهی شما درجهبندی شده باشد.
- هنگام کار با جریانهای بالا، از سینک حرارتی مناسب استفاده کنید.
- دکمهها را در پیکربندی پولآپ به زمین متصل کنید.
- اگر رفتار نامنظم مشاهده میکنید، برای دکمههایتان debounce را اعمال کنید.
- خروجی سریال را برای اشکالزدایی پایش کنید.
دستورالعملهای سیمکشی

برای سیمکشی اجزا، با وصل کردن موتور سروو شروع کنید. سیم قرمز سروو را به پایهٔ 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).
اشتباهات رایج شامل مشکلات سیمکشی هستند، مانند اتصالات نادرست یا ورودیهای شناور. همیشه اطمینان حاصل کنید که اتصالاتتان محکم هستند و از پایههای صحیح مطابق آنچه در شِفر (کود) مشخص شده استفاده میکنید.
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازونServo motor on Amazonamzn.to
-
علیاکسپرسPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
منابع و مراجع
هنوز هیچ منبعی موجود نیست.
فایلها📁
هیچ فایلی موجود نیست.