به نام خدا
آموزش پروژه محور آردوینو – جلسه پانزدهم چرخش معکوس موتور 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)