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

قبل از اینکه به سیمکشی و شِفر (کود) بپردازیم، مفید است که با قطعاتی که استفاده خواهیم کرد آشنا شویم. پتانسیومتر بهعنوان یک مقاومت متغیر عمل میکند که میتواند ولتاژ خروجی را بر اساس موقعیتش تنظیم کند؛ ما از آن برای تعیین زاویه سرو استفاده خواهیم کرد. LCD1602 مقدار فعلی پتانسیومتر و زاویه متناظر سرو را نمایش خواهد داد. میتوانید برای راهنمایی تصویری کل فرایند به ویدیو مراجعه کنید (in video at 00:00).
توضیح سختافزار
اجزای اصلی که در این پروژه استفاده خواهیم کرد عبارتند از:
- برد آردوینو:این بهعنوان کنترلکنندهٔ کل سیستم عمل خواهد کرد، ورودیهای پتانسیومتر را پردازش میکند و موقعیت سروو را بر اساس آنها کنترل میکند.
- پتانسیومتر:یک پتانسیومتر 10 کیلو اهم برای تأمین یک ورودی آنالوگ به آردوینو استفاده میشود. این پتانسیومتر سه پایه دارد: یکی به 5V متصل است، یکی به زمین و پایه میانی به پایه آنالوگ (A0) روی آردوینو متصل میشود.
- موتور سروو:این سروو با ارسال زاویهای بر اساس موقعیت پتانسیومتر کنترل خواهد شد. سیم سیگنال به یک پایه دیجیتال در آردوینو (پایه 9) متصل میشود.
- نمایشگر LCD1602:این نمایشگر مقدار پتانسیومتر و زاویه سروو را نشان میدهد. برای کنترل به چندین پایه دیجیتال روی آردوینو متصل میشود.
پتانسیومتر با تغییر مقاومت و بنابراین ولتاژ در پایهٔ وسطی آن کار میکند، که آردوینو آن را بهعنوان یک ورودی آنالوگ میخواند. موتور سروو با ارسال یک سیگنال مشخص مدولاسیون پهنای پالس (PWM) که متناظر با زاویهٔ موردنظر است کنترل میشود. LCD1602 از یک کتابخانه استفاده میکند که به ما اجازه میدهد نمایشگر آن را بهسادگی کنترل کرده و اطلاعات مربوط به پتانسیومتر و سروو را نمایش دهیم.
جزئیات مشخصات فنی
| تولیدکننده | مختلف |
|---|---|
| شماره قطعه | LM016L |
| ولتاژ منطق/ورودی-خروجی | ۵ ولت |
| ولتاژ تغذیه | 4.5 - 5.5 ولت |
| جریان خروجی (به ازای هر کانال) | تا 2 mA |
| جریان پیک (برای هر کانال) | 20 میلیآمپر |
| راهنمای فرکانس PWM | 50 هرتز |
| آستانههای ورودی منطقی | 0.3 × Vسیسی(کم)، 0.7 x Vسانتیمتر مکعب(بالا) |
| افت ولتاژ / RDS(on) / اشباع | حداکثر 0.2 ولت |
| محدودیتهای حرارتی | 85 °C |
| بسته | 16 پایه DIP |
| یادداشتها / واریانتها | نمایشگر کاراکتری 16x2 |
- پایه میانی پتانسیومتر را به پایه آنالوگ A0 متصل کنید.
- اطمینان حاصل کنید که سروو از یک منبع 5V تغذیه میشود و به پایه دیجیتال 9 متصل است.
- از کتابخانه مناسب برای LCD استفاده کنید و مطمئن شوید که در Arduino IDE شما گنجانده شده است.
- در سیمکشی مراقب باشید تا از اتصال کوتاه جلوگیری کنید، بهویژه در اتصالات سروو.
- اطمینان حاصل کنید که LCD در شِفر (کود) بهدرستی مقداردهی اولیه شده است تا از بروز مشکلات نمایش جلوگیری شود.

دستورالعملهای سیمکشی
برای سیمکشی قطعات به هم، با اتصال پتانسیومتر شروع کنید. یکی از پایههای خارجی پتانسیومتر را به پایهٔ 5V روی آردوینو وصل کنید و پایهٔ خارجی دیگر را به زمین. پایهٔ وسط به پایهٔ آنالوگ میرودA0.
سپس، برای موتور سروو، سیم قهوهای یا سیاه را به زمین، سیم قرمز را به پایه 5V و سیم زرد یا نارنجی را به پایه دیجیتال متصل کنید.9روی آردوینو. برای LCD1602، آن را وصل کنیدVDDپایه به 5V،RWبه زمین، وV0به پایه میانی پتانسیومتر برای تنظیم کنتراست وصل کنید.RSسنجاق کردن12،ENسنجاق کردن11،D4سنجاق کردن5,D5سنجاق کردن4،D6سنجاق زدن3، وD7سنجاق کردن2.
همچنین توصیه میشود در صورت استفاده از LED، یک مقاومت 220 اهم را به صورت سری با آن قرار داده و آن را به تغذیه 5V متصل کنید. علاوه بر این، میتوان یک خازن 470 µF را بین تغذیه و زمین سروو متصل کرد تا هرگونه اغتشاش (نویز) در حین عملکرد فیلتر شود.
مثالهای شِفر (کود) و راهنمای گامبهگام
شِفر (کود) با وارد کردن کتابخانههای لازم و مقداردهی اولیه پایهها برای LCD و سروو آغاز میشود. بخش زیر تنظیمات LCD و سروو را نشان میدهد:
void setup() {
lcd.begin(16, 2);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Robojax Servo Knob");
delay(2000);
}این قطعه شِفر (کود) LCD را برای 16 ستون و 2 ردیف مقداردهی اولیه میکند، سروو را به پایه 9 متصل میکند و یک پیام خوشآمدگویی را روی LCD نمایش میدهد.lcd.clear()این تابع تضمین میکند که هر پیام قبلی حذف شود.
سپس، حلقه بهطور پیوسته مقدار پتانسیومتر را میخواند و موقعیت سروو و نمایشگر LCD را بهروزرسانی میکند:
void loop() {
val = analogRead(potpin); // reads the value of the potentiometer
angle = map(val, 0, 1023, 0, 180); // scale it to use it with the servo
myservo.write(angle); // sets the servo position according to the scaled value
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pot. Value:");
lcd.setCursor(11, 0);
lcd.print(val);
lcd.setCursor(0, 1);
lcd.print("Angle :");
lcd.setCursor(11, 1);
lcd.print(angle);
delay(500);
}این حلقه مقدار پتانسیومتر را میخواند، آن را به زاویه متناظر برای سروو نگاشت میکند و نمایشگر LCD را با هر دو مقدار پتانسیومتر و زاویه سروو بهروزرسانی میکند. اینdelay(500)قرار گرفتن در انتهای حلقه از بهروزرسانی بیش از حد سریع نمایش جلوگیری میکند.
نمایش / چه انتظاری داشته باشید
هنگامی که سیستم را روشن میکنید، LCD به مدت 2 ثانیه عبارت Robojax Servo Knob را نمایش میدهد، سپس مقدار پتانسیومتر و زاویه سروو را نشان میدهد. با چرخاندن پتانسیومتر، زاویه سروو متناسب تغییر میکند و مقدار جدید پتانسیومتر روی LCD منعکس میشود. اگر با هر رفتار غیرمنتظرهای مواجه شدید، مانند حرکت سروو در جهت اشتباه، سیمکشی و اتصالات پتانسیومتر و سروو را بررسی کنید (در ویدیو در 10:00).
این آموزش بخشی از: سروو موتورها
- کنترل یک سرو موتور با دکمههای فشاری با استفاده از آردوینو
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- کنترل یک سروو با پتانسیومتر با استفاده از آردوینو
- کنترل سرو موتورها با استفاده از یک کنترل از راه دور مادون قرمز و آردوینو
- کنترل موتور سروو آردوینو با استفاده از پتانسیومتر
- کنترل موقعیت سروو با حرکات دست برای آردوینو
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- شِفر (کود) آردوینو و ویدیو برای کنترلکننده سروو PCA9685، 16 کاناله، 12 بیتی، V1
- Build an Arduino Servo Toggle Switch with a Push Button
منابع و مراجع
-
خارجیاستفاده از نمایشگر LCD1602 برای آردوینوyoutube.com
-
خارجیکتابخانه LCD1602 (از گیتهاب)github.com
فایلها📁
هیچ فایلی موجود نیست.