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

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

– آی سی L293D

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

– میکروسوئیچ

– بردبورد

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

– تعدادی سیم

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

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

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

کد های برنامه را از لینک زیر دانلود کنید و بر روی برد آردوینو آپلود کنید .
دانلود فایل
پین ها در تابع setup تعریف شده اند .
در حلقه اصلی برنامه عدد خوانده شده از واحد ADC که به پتانسیومتر وصل است را بر ۴ تقسیم می کنیم و این عدد را به پین ۱ آی سی L293D می دهیم . دلیل این کار این است که واحد ADC ما ۱۰ بیتی است و عددی که دریافت می کند بین ۰ تا ۱۰۲۳ می باشد اما PWM ما ۸ بیتی است و عددی بین ۰ تا ۲۵۵ لازم دارد . با فشار دادن میکروسوئیچ جهت چرخش موتور عوض می شود . این کار در تابع 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 است .
دیدگاهها (0)