رباتیک و هوافضا

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

آموزش های پروژه محور آردوینو

به نام خدا

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

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

learn_arduino_overview

 

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

– موتور DC کوچک

learn_arduino_dc_motor

 

– آی سی L293D

L293d

 

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

learn_arduino_pot

 

– میکروسوئیچ

learn_arduino_switch_click

 

– بردبورد

learn_arduino_breadboard_half_web

 

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

learn_arduino_uno_r3_web

 

– تعدادی سیم

learn_arduino_jumpers_web

 

یک آزمایش :

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

learn_arduino_fritzing_pwr_only

 

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

مدار زیر را ببندید .

learn_arduino_fritzing_chip_only

 

سه پین اصلی از آی سی L293D که مورد نیاز ما است ، پین ۱ ( Enable ) ، پین ۲ ( In1 ) و پین ۷ ( In2 ) می باشد . پین ۱ توسط سیم بنفش به زمین یا ۵ ولت وصل می شود ، پین ۲ و ۷ توسط سیم های زرد و نارنجی به آردوینو وصل می شوند ( البته ما در مدار بالا این دو پایه را به زمین و ۵ ولت وصل کرده ایم تا عملکرد آی سی را نشان دهیم ) .

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

اگر پین ۱ یعنی پین Enable به زمین وصل شود صرف نظر از این که پین های ۲ و ۷ ولتاژ دارند یا ندارند موتور کار نخواهد کرد و متوقف خواهد شد . به عبارتی می توان گفت ما برای کنترل سرعت چرخش موتور باید پالس PWM خود را به این پایه ( پایه Enable ) بدهیم .

پایه های ۲ و ۷ اگر هر دو مثبت یا هر دو منفی باشند موتور متوقف می شود ، اگر یکی مثبت و دیگری منفی باشد در یک جهت می چرخند و اگر جای این دو با هم عوض شود در خلاف جهت قبلی خواهد چرخید .

In1

In2

Motor

GND GND توقف
۵V GND چرخش در جهت A
GND ۵V چرخش در جهت B
۵V ۵V توقف

 

مدار زیر را ببندید .

learn_arduino_fritzing

 

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

 

دانلود فایل

 

پین ها در تابع setup تعریف شده اند .

بیشتر بخوانید...  نمایش دما و رطوبت روی lcd بوسیله آردوینو و سنسور DHT22

در حلقه اصلی برنامه عدد خوانده شده از واحد ADC که به پتانسیومتر وصل است را بر ۴ تقسیم می کنیم و این عدد را به پین ۱ آی سی L293D می دهیم . دلیل این کار این است که واحد ADC ما ۱۰ بیتی است و عددی که دریافت می کند بین ۰ تا ۱۰۲۳ می باشد اما PWM ما ۸ بیتی است و عددی بین ۰ تا ۲۵۵ لازم دارد . با فشار دادن میکروسوئیچ جهت چرخش موتور عوض می شود . این کار در تابع setmotor که در برنامه آمده انجام می شود .

    void setMotor(int speed, boolean reverse)
    {
      analogWrite(enablePin, speed);
      digitalWrite(in1Pin, ! reverse);
      digitalWrite(in2Pin, reverse);
    }

شکل زیر پایه های آی سی L293D را شرح می دهد .

learn_arduino_L293d

آی سی L293D برای دو موتور طراحی شده است . پایه های IN3 و IN4 معادل IN1 و IN2 هستند ، پایه های OUT3 و OUT4 معادل OUT1 و OUT2 هستند و پایه EN2 معادل پایه EN1 است .

 

دیدگاه‌ها (0)

*
*