درایور موتورهای دی سی(L298N){جلسه بیست و پنجم}

مقدمه

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

برای کنترل یک موتور دی سی فقط کافی است دو پارامتر زیر را کنترل کنیم:

  1. کنترل دور موتور
  2. کنترل جهت چرخش

برای کنترل آیتم شماره یک که مربوط به دور موتور می باشد به راحتی و با استفاده از PWM می توان این کار را انجام داد. البته برای کنترل دور موتور به سه طریق زیر می توان عمل کرد:

  1. روش دستی یا Manual
  2. ولتاژ آنالوگ
  3. پالس PWM

ولی در بحث ربات های کنترل از راه دور رایج ترین روش همان PWM است که در جلسه زیر می توانید به طور کامل با آن آشنا شوید. با ترکیب PWM و پل H به راحتی می توان موتور را کنترل کرد.

برای کنترل جهت چرخش موتور از پل H استفاده می شود. نحوه کار پل H هم به طور خلاصه به صورت زیر است که شماتیک آن نشان داده شده است. با استفاده از ماسفت ها و ترانزیستورها یا کلیدها به راحتی چرخش راستگرد و چپگرد را می توان تولید کرد:

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

دو نمونه از رایج ترین درایورهای موتور DC که در حال حاضر در بازار به راحتی یافت می شود به صورت زیر است:

  1. درایور L298
  2. درایور L293

در این جلسه بر روی درایور L298 بحث می کنیم که در دو نوع ساخته می شود:

درایور L298

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

در شکل زیر شماتیک مربوط به یکی از رایج ترین بردهای درایور موتورهای DC را مشاهده می کنید که مربوط به L298 است و بر روی یک برد کاملا پیاده سازی شده است و خروجی های آن نشان داده شده است تا بتوان به راحتی از آن استفاده کرد.

خصوصا برای دوستانی که بر روی محیط آردوینو برنامه نویسی انجام می دهند این برد بسیار مناسب می باشد و ورودی خروجی های آن کاملا مشخص می باشد. L298 از دو پل H‌ در طراحی خودش بهره می برد که قاعدتا فقط می توان دو موتور را به وسیله آن راه اندازی کرد. 

*در ساختار داخلی درایور برای پل H از ترانزیستور استفاده شده است.

نام پین

شرح

IN1 & IN2

پین های ورودی موتور ‌A/ برای تغییر جهت چرخش موتور A

IN3 & IN4

پین های ورودی موتور ‌B/ برای تغییر جهت چرخش موتور B

ENA

سیگنال PWM برای موتور A

ENB

سیگنال PWM برای موتور B

OUT1 & OUT2

پین های خروجی برای اتصال به موتور A

OUT3 & OUT4

پین های خروجی برای اتصال به موتور B

12V

ولتاژ ورودی از منبع تغذیه(البته می توان تا 46 ولت را به آن وصل کرد)

5V

ولتاژ ورودی 5 ولت برای مدارات داخلی L298N IC

GND

اتصال به زمین

درایور موتور دی سی L298

  • حداکثر ولتاژ ورودی تا 35 ولت می باشد. توصیه می شود برای موتورهای 5 ولتی ولتاژ 7ولت را به سوکت تغذیه متصل کنید و برای موتورهای 12 ولتی ولتاژ 14 ولت را به سوکت تغذیه متصل کنید.
  • حداکثر جریان خروجی از دو کانال 4 آمپر می باشد یعنی هر موتور می تواند حداکثر 2 آمپر جریان بکشد.
  • از منبع تغذیه بیشتر از 2 آمپر استفاده نکنید.

نکته مهم: اگر بر روی ENA و ENB جامپر بزنیم موتورها با حداکثر سرعت کار می کنند و اگر بر روی این دو هیچ جامپری وجود نداشت می توانیم آنها را با PWM کنترل کنیم. پس دقت کنید برای اینکه بتوان از PWM استفاده کرد و با کدنویسی دور موتور را کنترل کرد می بایست بر روی این دو ورودی هیچ نوع جامپری وجود نداشته باشد.

در شکل زیر نیز قطعات اصلی این برد را مشاهده می کنید. بر روی قسمت پشتی درایور L298 نیز معمولا یک هیت سینک{Heat Sink} قرار داده می شود تا جریان حرارتی که بر روی آن ایجاد می شود را خنک کند.

درایور موتور دی سی L298

شماتیک مداری برد بالا و محل قرارگیری L298 و قطعات متصل به آن را مشاهده می کنید. همانگونه که در شکل نشان داده شده است از یک رگولاتور 7805 نیز برای تولید یک ولتاژ رگوله شده 5 ولت استفاده شده است. نحوه استفاده از آن هم بدین صورت است که اگر جامپر را در جای خود قرار دهید رگولاتور 5 ولت فعال می شود و منبع تغذیه منطقی(VSS) از منبع تغذیه موتور مشتق می شود. در این مورد ترمینال ورودی 5ولت به عنوان پایه خروجی عمل می کند و ولتاژ 5 ولت 0.5 آمپر را ارایه می کند که می توانید از آن برای تغذیه آردوینو یا مدارهای دیگری که به برق 5 ولت نیاز دارند استفاده کنید. 

با حذف جامپر رگولاتور 5 ولت غیرفعال می ود و باید 5 ولت را جداگانه از طریق پین VSS تامین کنید.

هشدار

هشدار مهم: اگر منبع تغذیه موتور کمتر از 12 ولت باشد می توانید جامپر را در جای خود نگه دارید و اگر ولتاژ آن بیشتر از 12 ولت باشد حتما باید جامپر برداشته شود تا از آسیب دیدن آن جلوگیری شود.

 

مدار راه انداز موتور دی سی

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

درایور موتور دی سی

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

درایور L298

بنابراین اگر می خواهید از حداکثر سرعت موتور استفاده کنید می بایست این 2 ولت را جبران کنید یعنی اگر از موتورهای 5 ولت استفاده می کنید، باید 7 ولت را برای سوکت تغذیه استفاده کنید و اگر موتورهای 12 ولت دارید، ولتاژ تغذیه موتور شما باید 14 ولت باشد. 

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

راه اندازی موتور با آردوینو

نمونه سورس کد آردوینو هم به صورت زیر است که می توانید از آن استفاده کنید:

:توضیحات کد

در ابتدا پین های L298 را مطابق شکل بالا به شش عدد زیر به پایه های آردوینو متصل می کنیم

سپس همه پین های موتور که شامل جهت و سرعت است را به عنوان خروجی تعریف می کنیم. سپس پایه های تغییر جهت موتور را LOW می کنیم:

void setup() {
  // Set all the motor control pins to outputs
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
 
  // Turn off motors – Initial state
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}

در قسمت حلقه کد دو تابع تعریف شده را با فاصله زمانی یک ثانیه فراخوانی می کنیم:

تابع directionControl() باعث می شود که هر دو موتور با نهایت سرعت به مدت دو ثانیه بچرخند. سپس جهت چرخش موتورها را برعکس می کند و به مدت دو ثانیه می چرخند. سرانجام موتورها را متوقف می کند.

تابع speedControl() یک سیگنال PWM را برای موتورها تعریف می کند که هر دو موتور را به نهایت سرعت می رساند قبل از اینکه سرعت آنها را صفر کند. سرانجام سرعت موتورها را صفر میکند.

دیتاشیت درایور L298 را می توانید از لینک زیر دانلود کنید:

دیتاشیت L298

 

دوستان عزیز بیشتر دوره های مربوط به این وب سایت رایگان می باشد. در صورت تمایل می توانید به اندازه وسع مالی خود(هر چند ناچیز) جهت پرداخت هزینه های نگهداری وب سایت از ما حمایت کنید:

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

اشتراک گذاری:
مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید