شما به اینترنت متصل نیستید.
آموزش آردوینو: درس پانزدهم (موتور DC - بخش دوم)
نویسنده:
امتیاز دهید

آموزش آردوینو: درس پانزدهم (موتور DC - بخش دوم)

سری آموزش آردوینو: درس پانزدهم

در این درس شما یاد خواهید گرفت که چگونه جهت چرخش و سرعت یک موتور DC کوچک را از طریق برد آردوینو و تراشه درایور موتور L293D کنترل کنید.

آموزش آردوینو: درس چهاردهم(سروو موتور)

آموزش آردوینو: درس چهاردهم (سروو موتور)
آموزش آردوینو: درس چهاردهم (سروو موتور)
سری آموزش آردوینو: درس چهاردهم در این درس یادخواهید گرفت که چگونه یک سروو موتور را توسط آردوینو کنترل کنید. آموزش آردوینو: درس سیزدهم(موتورDC-یخش اول)...
زمان مطالعه: 13 دقیقه
مدار کنترل چرخش و سرعت موتور DC به کمک آردوینو

از پتانسیومتر برای کنترل سرعت موتور و از کلید فشاری برای کنترل جهت چرخش موتور استفاده شده است.

قطعات مورد استفاده:

برد آردوینو UNO R3
برد آردوینو و کابل رابط
1 عدد
برد بورد
1 عدد
میکروسوئیچ-pushbutton
1 عدد
موتور DC کوچک 6V
1 عدد
مقاومت متغییر 10 کیلو اهم
1 عدد
آی سی درایور موتور L293D اصلی
L293D
1 عدد
سیم اتصال به برد بورد
1 عدد

قبل از شروع برنامه اصلی، ابتدا از تراشه کنترل موتور L293D استفاده کنید تا دیدی نسبت به نحوه عملکرد آن پیدا کنید.

از برد آردوینو فقط برای تامین توان 5V موتور استفاده می شود.

ابتدا بررسی کنید که موتور در چه جهتی می چرخد. این کار را می توانید با توجه به مدار درس سیزدهم انجام دهید. جهت چرخش با لمس کردن شفت موتور بین انگشتان دست قابل تشخیص است. جهت چرخش موتور را با عوض کردن سر مثبت و منفی سیم های آن تغییر دهید. این کار به شما دید می دهد که تراشه L293D چگونه کار می­کند. پین کنترل این تراشه این امکان را ایجاد می کند که کاری مشابه را انجام داده وجهت چرخش موتور را تغییر دهید.

اتصالات مدار را مطابق شکل زیر انجام دهید. آردوینو همچنان به عنوان تامین کننده توان عمل می کند.

کنترل موتور L293D به کمک برد آردوینو

سه تا از پین های تراشه L293D مورد توجه می باشند. پین1 (Enable)، پین2 (In1) و پین7 (In2). این پین ها توسط سیم های بنفش، زرد و نارنجی به +5V و GND متصل شده اند.

با توجه به نحوه اتصالات مطابق شکل بالا، موتور در یک جهت که به طور مثال A نام گذاری شده است، می چرخد.

اگر پین1 (Enable) به GND متصل شود، موتور متوقف می شود و تغییر دادن دو پین دیگر هیچ تاثیری در آن نخواهد داشت. می توان از این پین به عنوان خروجی PWM استفاده کرده و سرعت موتور را کنترل کرد. مجددا پین1 را به +5V متصل کنید، موتور مجددا شروع به کار خواهد کرد.

حال پین2 (In1) را از 5V به GND متصل کنید، در این حالت هر دو پایه In1 و In2 به GND متصل می باشند، لذا مجددا موتور متوقف خواهد شد.

با جابه جا کردن پین7 (In2) از GND به 5V جهت چرخش موتور تغییر خواهد کرد( جهت B). در نهایت با برگرداندن In1 به 5V، هر دوپایه In1 و In2 به 5V متصل بوده و موتور خاموش خواهد شد.

اکنون برنامه اصلی برای کنترل موتور را پیاده سازی کنید، اجازه دهید که آردوینو پین های Enable، In1 و In2 را کنترل کند. وقتی اتصالات را انجام می دهید، مطمئن شوید که تراشه به طور درست در جایگاه خود قرار گرفته باشد.

ویرایش شود

برنامه زیر را روی برد آپلود کنید:

int enablePin = 11;

int in1Pin = 10;

int in2Pin = 9;

int switchPin = 7;

int potPin = 0;

 

void setup()

{

  pinMode(in1Pin, OUTPUT);

  pinMode(in2Pin, OUTPUT);

  pinMode(enablePin, OUTPUT);

  pinMode(switchPin, INPUT_PULLUP);

}

 

void loop()

{

  int speed = analogRead(potPin) / 4;

  boolean reverse = digitalRead(switchPin);

  setMotor(speed, reverse);

}

 

void setMotor(int speed, boolean reverse)

{

  analogWrite(enablePin, speed);

  digitalWrite(in1Pin, ! reverse);

  digitalWrite(in2Pin, reverse);

}

نحوه عملکرد برنامه را در ویدئو زیر می توانید مشاهده کنید:

طبق روال قبل پین ها معرفی شده و وضعیت آنها نیز در حلقه setup تعیین شده است. در حلقه Loop یک متغییر برای سرعت موتور تعیین شده که مقادیر خوانده شده از ورودی آنالوگ ابتدا بر 4 تقسیم شده و سپس در آن ذخیره می شوند. این تقسیم نیز به این خاطر است که، مقادیر ورودی آنالوگ اعدادی بین 0 تا 1023 بوده ولی مقادیر خروجی آنالوگ باید اعدادی بین 0 تا 255 باشند.

اگر کلید فشرده شود، جهت چرخش موتور با توجه به مقدار متغییر reverse تغییر خواهد کرد. متغییر reverse وضعیت پین مربوط به کلید را در خود ذخیره می کند. اگر کلید فشار داده شود مقدار صفر در غیر این صورت مقدار یک را برمی گرداند.

مقادیر متغییرهای speed و reverse به تابعی به نام setMotor منتقل شده و از آن طریق به پین های مورد نظر در درایور موتور منتقل می شوند.


void setMotor(int speed, boolean reverse)

{

  analogWrite(enablePin, speed);

  digitalWrite(in1Pin, ! reverse);

  digitalWrite(in2Pin, reverse);

}

در ابتدا مقدار سرعت از طریق دستور analogWrite به پین enable منتقل خواهد شد. جهت چرخش نیز با توجه به مقادیر صحیحی که پین های in1 و in2 دریافت می کنند تنظیم می شود.

اگر in1 در وضعیت high و پین in2 در وضعیت low قرار داشته باشد، موتور در یک جهت خواهد چرخید و اگر وضعیت پین ها برعکس شود، جهت چرخش پین ها نیز تغییر خواهد کرد. با توجه به علامت ! همواره مقادیر پین های in1 و in2 معکوس یکدیگر خواهد بود.

تراشه L293D:

این تراشه بسیار مفیدی است که می تواند دو موتور را به صورت مستقل کنترل کند. در این درس فقط از نصف تراشه که در یک سمت آن قرار دارد استفاده شده است.

ویرایش شود

تراشه L293D دارای دو پایه برای اتصال به ولتاژ مثبت می باشد (8 و 16). پین +Vmotor (8) توان موتور و پین +V (16) توان تراشه را تامین می کند. در این جا هر دوی آنها به +5V آردوینو متصل شده اند. در صورتی که از موتوری استفاده می کنید که توان بالایی دارد، لازم است که از یک منبع قوی تر خارجی استفاده کرده و سر مثبت آن را به پایه 8 تراشه متصل کنید و سر منفی آن را با منفی برد آردوینو یکی کنید.

به عنوان کارهای دیگری که می توان انجام داد، سعی کنید وضعیت موتور را بدون استفاده از پتانسیومتر و کلید تغییر دهید. به این صورت که ابتدا موتور در یک جهت از سرعت آرام شروع به کار کرده سرعتش افزایش می یابد، سپس سرعتش به آرامی کاهش یافته صفر شده و در جهت معکوس شروع به حرکت می کند.

آموزش آردوینو: درس شانزدهم(استپر موتور)

معرفی و راه‌اندازی استپر موتور با آردوینو
معرفی و راه‌اندازی استپر موتور با آردوینو
در این آموزش به معرفی استپر موتور و بررسی نحوه راه اندازی آن با آردوینو خواهیم پرداخت.
زمان مطالعه: 36 دقیقه

نظرات شما باعث بهبود محتوای آموزشی ما می‌شود. اگر این آموزش را دوست داشتید، همین‌طور اگر سوالی در مورد آن دارید، از شنیدن نظراتتان خوشحال خواهیم شد.

ترجمه شده و تکمیل توسط اتومی | منبع : adafruit.com

آیا این مطلب برایتان مفید بود؟
بله خیر
تاکنون هیچ نظری ثبت نشده است.
برای ثبت نظر وارد حساب کاربری خود شوید.