درایور موتورهای دی سی(L298N){جلسه بیست و پنجم}
مقدمه
برای کنترل یک موتور دی سی فقط کافی است دو پارامتر زیر را کنترل کنیم:
- کنترل دور موتور
- کنترل جهت چرخش
برای کنترل آیتم شماره یک که مربوط به دور موتور می باشد به راحتی و با استفاده از PWM می توان این کار را انجام داد. البته برای کنترل دور موتور به سه طریق زیر می توان عمل کرد:
- روش دستی یا Manual
- ولتاژ آنالوگ
- پالس PWM
ولی در بحث ربات های کنترل از راه دور رایج ترین روش همان PWM است که در جلسه زیر می توانید به طور کامل با آن آشنا شوید. با ترکیب PWM و پل H به راحتی می توان موتور را کنترل کرد.
برای کنترل جهت چرخش موتور از پل H استفاده می شود. نحوه کار پل H هم به طور خلاصه به صورت زیر است که شماتیک آن نشان داده شده است. با استفاده از ماسفت ها و ترانزیستورها یا کلیدها به راحتی چرخش راستگرد و چپگرد را می توان تولید کرد:
برای چرخش موتور در حالت های راستگرد و چپگرد نیز می توان به صورت زیر از پل اچ بهره برد و به راحتی جهت دوران موتور را عوض کرد البته اینکار در درایور انجام می شود و شما فقط می بایست با استفاده از برنامه ای که بر روی میکروکنترلر تغذیه می کنید جهت چرخش را عوض کنید. معمولا برای موتورهای با آمپر بالا از ماسفت ها استفاده می شود.
دو نمونه از رایج ترین درایورهای موتور DC که در حال حاضر در بازار به راحتی یافت می شود به صورت زیر است:
- درایور L298
- درایور L293
در این جلسه بر روی درایور 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 |
اتصال به زمین |
- حداکثر ولتاژ ورودی تا 35 ولت می باشد. توصیه می شود برای موتورهای 5 ولتی ولتاژ 7ولت را به سوکت تغذیه متصل کنید و برای موتورهای 12 ولتی ولتاژ 14 ولت را به سوکت تغذیه متصل کنید.
- حداکثر جریان خروجی از دو کانال 4 آمپر می باشد یعنی هر موتور می تواند حداکثر 2 آمپر جریان بکشد.
- از منبع تغذیه بیشتر از 2 آمپر استفاده نکنید.
نکته مهم: اگر بر روی ENA و ENB جامپر بزنیم موتورها با حداکثر سرعت کار می کنند و اگر بر روی این دو هیچ جامپری وجود نداشت می توانیم آنها را با PWM کنترل کنیم. پس دقت کنید برای اینکه بتوان از PWM استفاده کرد و با کدنویسی دور موتور را کنترل کرد می بایست بر روی این دو ورودی هیچ نوع جامپری وجود نداشته باشد.
در شکل زیر نیز قطعات اصلی این برد را مشاهده می کنید. بر روی قسمت پشتی درایور L298 نیز معمولا یک هیت سینک{Heat Sink} قرار داده می شود تا جریان حرارتی که بر روی آن ایجاد می شود را خنک کند.
شماتیک مداری برد بالا و محل قرارگیری L298 و قطعات متصل به آن را مشاهده می کنید. همانگونه که در شکل نشان داده شده است از یک رگولاتور 7805 نیز برای تولید یک ولتاژ رگوله شده 5 ولت استفاده شده است. نحوه استفاده از آن هم بدین صورت است که اگر جامپر را در جای خود قرار دهید رگولاتور 5 ولت فعال می شود و منبع تغذیه منطقی(VSS) از منبع تغذیه موتور مشتق می شود. در این مورد ترمینال ورودی 5ولت به عنوان پایه خروجی عمل می کند و ولتاژ 5 ولت 0.5 آمپر را ارایه می کند که می توانید از آن برای تغذیه آردوینو یا مدارهای دیگری که به برق 5 ولت نیاز دارند استفاده کنید.
با حذف جامپر رگولاتور 5 ولت غیرفعال می ود و باید 5 ولت را جداگانه از طریق پین VSS تامین کنید.
هشدار
هشدار مهم: اگر منبع تغذیه موتور کمتر از 12 ولت باشد می توانید جامپر را در جای خود نگه دارید و اگر ولتاژ آن بیشتر از 12 ولت باشد حتما باید جامپر برداشته شود تا از آسیب دیدن آن جلوگیری شود.
همانطور که در شکل زیر مشاهده می کنید این درایور فقط قابلیت اتصال دو موتور به آن را دارد که در طرفین این برد محل اتصال آنها می باشد.
ترانزیستورهای داخلی درایور یک افت ولتاژ 2ولتی را در خروجی نشان می دهند که می بایست آن را جبران کنید:
بنابراین اگر می خواهید از حداکثر سرعت موتور استفاده کنید می بایست این 2 ولت را جبران کنید یعنی اگر از موتورهای 5 ولت استفاده می کنید، باید 7 ولت را برای سوکت تغذیه استفاده کنید و اگر موتورهای 12 ولت دارید، ولتاژ تغذیه موتور شما باید 14 ولت باشد.
در شکل زیر هم دو برد آردوینو و درایور به هم متصل شده اند. دقت کنید برای اینکه دو برد مجزا ارتباط برقرار کنند می بایست یک منفی مشترک داشته باشند که در زیر نیز متصل شده است.
نمونه سورس کد آردوینو هم به صورت زیر است که می توانید از آن استفاده کنید:
در ابتدا پین های L298 را مطابق شکل بالا به شش عدد زیر به پایه های آردوینو متصل می کنیم
سپس همه پین های موتور که شامل جهت و سرعت است را به عنوان خروجی تعریف می کنیم. سپس پایه های تغییر جهت موتور را LOW می کنیم:
در قسمت حلقه کد دو تابع تعریف شده را با فاصله زمانی یک ثانیه فراخوانی می کنیم:
تابع directionControl() باعث می شود که هر دو موتور با نهایت سرعت به مدت دو ثانیه بچرخند. سپس جهت چرخش موتورها را برعکس می کند و به مدت دو ثانیه می چرخند. سرانجام موتورها را متوقف می کند.
تابع speedControl() یک سیگنال PWM را برای موتورها تعریف می کند که هر دو موتور را به نهایت سرعت می رساند قبل از اینکه سرعت آنها را صفر کند. سرانجام سرعت موتورها را صفر میکند.
دیتاشیت درایور L298 را می توانید از لینک زیر دانلود کنید:
دوستان عزیز بیشتر دوره های مربوط به این وب سایت رایگان می باشد. در صورت تمایل می توانید به اندازه وسع مالی خود(هر چند ناچیز) جهت پرداخت هزینه های نگهداری وب سایت از ما حمایت کنید:
این جلسه نیز به پایان رسید. برای دریافت آخرین مطالب سایت و همچنین مطالب منحصر به فرد دیگر که در سایت منتشر نمی شوند میتوانید در کانال تلگرام ما عضو شوید و یا در اینستاگرام ما را فالوو کنید:
دیدگاهتان را بنویسید