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

قطعات مورد نیاز پروژه :
– موتور DC کوچک

– آی سی L293D

– پتانسیومتر 10 کیلو اهم

– میکروسوئیچ

– بردبورد

– برد آردوینو UNO

– تعدادی سیم

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

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

سه پین اصلی از آی سی L293D که مورد نیاز ما است ، پین 1 ( Enable ) ، پین 2 ( In1 ) و پین 7 ( In2 ) می باشد . پین 1 توسط سیم بنفش به زمین یا 5 ولت وصل می شود ، پین 2 و 7 توسط سیم های زرد و نارنجی به آردوینو وصل می شوند ( البته ما در مدار بالا این دو پایه را به زمین و 5 ولت وصل کرده ایم تا عملکرد آی سی را نشان دهیم ) .
اگر پین 1 یعنی پین Enable به زمین وصل شود صرف نظر از این که پین های 2 و 7 ولتاژ دارند یا ندارند موتور کار نخواهد کرد و متوقف خواهد شد . به عبارتی می توان گفت ما برای کنترل سرعت چرخش موتور باید پالس PWM خود را به این پایه ( پایه Enable ) بدهیم .
پایه های 2 و 7 اگر هر دو مثبت یا هر دو منفی باشند موتور متوقف می شود ، اگر یکی مثبت و دیگری منفی باشد در یک جهت می چرخند و اگر جای این دو با هم عوض شود در خلاف جهت قبلی خواهد چرخید .
In1 |
In2 |
Motor |
| GND | GND | توقف |
| 5V | GND | چرخش در جهت A |
| GND | 5V | چرخش در جهت B |
| 5V | 5V | توقف |
مدار زیر را ببندید .

کد های برنامه را از لینک زیر دانلود کنید و بر روی برد آردوینو آپلود کنید .
[maxbutton id=”9″ url=”http://avatrobo.ir/wp-content/uploads/2015/11/DC-Motor-Reversing.txt” text=”دانلود فایل” ]
پین ها در تابع setup تعریف شده اند .
در حلقه اصلی برنامه عدد خوانده شده از واحد ADC که به پتانسیومتر وصل است را بر 4 تقسیم می کنیم و این عدد را به پین 1 آی سی L293D می دهیم . دلیل این کار این است که واحد ADC ما 10 بیتی است و عددی که دریافت می کند بین 0 تا 1023 می باشد اما PWM ما 8 بیتی است و عددی بین 0 تا 255 لازم دارد . با فشار دادن میکروسوئیچ جهت چرخش موتور عوض می شود . این کار در تابع setmotor که در برنامه آمده انجام می شود .
void setMotor(int speed, boolean reverse)
{
analogWrite(enablePin, speed);
digitalWrite(in1Pin, ! reverse);
digitalWrite(in2Pin, reverse);
}
شکل زیر پایه های آی سی L293D را شرح می دهد .

آی سی L293D برای دو موتور طراحی شده است . پایه های IN3 و IN4 معادل IN1 و IN2 هستند ، پایه های OUT3 و OUT4 معادل OUT1 و OUT2 هستند و پایه EN2 معادل پایه EN1 است .
پست های مرتبط
اردیبهشت 9, 1398
اسفند 5, 1397
بهمن 2, 1397
دیدگاهتان را بنویسید