ماژول درایور دو کاناله موتور DC مهندسیکا مدل L298n Driver DC motor
ماژولهای سازگار با آردوینو به دسته ای از قطعات الکترونیک گفته میشود که علاوه بر سازگاری مشخصات پایه های ورودی و خروجی قابلیت دسترسی به کدهای برنامه نویسی و توابع کتابخانه ای ماژول نیز به سادگی میسر است.این ماژولها همچنین به روشهای ساده تری قابل راه اندازی هستند که نیازی به میکرومنترلر ندارند با توجه به سطح ولتاژ ماژول میتوان به راحتی با ماژول رله 5 ولت مهندسیکا عملکرد را مشاهده نمود، ماژول درایور دوکاناله موتور DC کاربردهای متنوعی در رباتیک و کنترل دارد.
اگر در فکر ساخت یک ربات جدید هستید، حتما باید نحوه کنترل موتورهای DC را یاد بگیرید. یکی از آسانترین و ارزانترین روش های کنترل موتورهای DC، راه اندازی ماژول درایور موتور L298 با آردوینو است. به عنوان مثال ماژول درایور موتور L298N که یکی از مدل های این ماژول است، ميتواند همزمان سرعت و جهت دوران دو موتور DC را کنترل کند. بعلاوه، با استفاده از آن ميتوان یک استپ موتور دو قطبی نظیر NEMA 17 را نیز کنترل نمود.
برای راه اندازی موتور های دی سی (DC) با جریان مصرفی کمتر از ۲ آمپر، استفاده از آی سی درایور L298N گزینه مناسبی می باشد. ماژول درایور L298N با مدار فیلتر مناسب و دسترسی به ورودی و خروجی ها از طریق پین هدر و ترمینال، استفاده از این آی سی درایور را برای ما بسیار ساده تر کرده است.
L298N در واقع یک درایور فول بریج با دو نصفه پل (H-Bridges) است که امکان اتصال دو موتور دی سی را به صورت همزمان فراهم می کند.
ماژول L298N دارای ۱۳ پایه به شرح زیر است:
افت ولتاژ درایور L298 در حدود ۲ ولت است که بخاطر افت ولتاژ داخلی ترانزیستورهای سوئیچینگ مدار پل H ميباشد. بنابراین اگر تغذیه ۹ ولتی به ترمينال ورودی ماژول اعمال شود، موتور DC ولتاژی در حدود ۷ ولت دریافت ميکند. لذا، یک موتور DC نه ولتی نمي تواند با حداکثر سرعت نامي خود کار کند. به همین دلیل برای دستیابی به حداکثر سرعت نامي موتور، لازم است ولتاژ تغذیه موتور که به ترمينال ورودی ماژول داده ميشود، حدود ۲ ولت بیشتر از حداکثر ولتاژ نامي موتور در نظر گرفته شود.
بنابراین با در نظر گرفتن افت ولتاژ ۲ ولت، برای یک موتور DC پنج ولتی باید ولتاژ تغذیه ۷ ولت به ترمينال ورودی ماژول درایور داده شود. به همین ترتیب برای یک موتور ۱۲ ولتی باید تغذیه ترمينال ورودی ۱۴ ولت در نظر گرفته شود.
کانالهای خروجی درایور برای دو موتور A و B به دو ترمينال ۳٫۵ ميليمتری در طرفین ماژول L298 متصل شدهاند. به این دو ترمينال ميتوان دو موتور الکتریکی مستقل با ولتاژ کاری ۶ تا ۳۵ ولت وصل نمود. هر ترمينال خروجی ميتواند تا ۲ آمپر جریان برای موتور الکتریکی تامين نماید. هرچند مقدار جریان اعمالی، به منبع تغذیه سیستم بستگی دارد.
در صورت قرار گرفتن بار زیاد روی موتور، دمای درایور به سرعت بالا می رود و با توجه به این که دمای کاری L298N بین -۲۵ تا ۱۳۰ درجه سلسیوس است، می بایست امکان خنک شدن هیت سینک فراهم شود.
پین VCC : تغذیه موتور را تامين مي کند که مقدار ولتاژ آن ميتواند بین ۶ تا ۳۵ ولت باشد. یادآوری ميشود که اگر جامپر ۵V در محل خود قرار داشته باشد، برای دستیابی به حداکثر سرعت موتور لازم است مقدار ولتاژ تغذیه به اندازه ۲ ولت بیشتر از ولتاژ نامي موتور اعمال شود.
پین GND : پین زمين مشترک است.
پین ۵V : ولتاژ مورد نیاز مدارات منطقی سوئیچینگ داخلی آی سی L298 را تامين ميکند. اگر جامپر ۵V در محل خود قرار داشته باشد، این پین به عنوان یک پین خروجی عمل ميکند و از آن ميتوان برای تغذیه آردوینو استفاده نمود. اگر این جامپر برداشته شود، نیاز است که این پین به پین ۵V آردوینو متصل شود.
پین ENA : برای کنترل سرعت موتور A استفاده ميشود. اعمال منطق High به این پین (یا بطور معادل نگه داشتن جامپر در سر جای خود) سبب شروع به کار کردن موتور A و برداشتن جامپر سبب متوقف شدن موتور خواهد شد. برداشتن جامپر و اتصال پین به ورودی PWM امکان کنترل سرعت موتور A را فراهم خواهد کرد.
پینهایIN1 و IN2 : برای کنترل جهت دوران موتور A استفاده مي شوند. وقتی به یکی از این پینها منطق High (5 ولت) و به دیگری منطق Low (صفر ولت) اعمال شود، شافت موتور در یک جهت شروع به چرخش ميکند. اگر به هر دوی این پینها منطق High و یا به هر دو منطق Low اعمال شود، موتور A متوقف خواهد شد.
پینهایIN3 و IN4 : برای کنترل جهت دوران موتور B استفاده مي شوند. وقتی به یکی از این پینها منطقHigh (5 ولت) و به دیگری منطق Low (صفر ولت) اعمال شود، شافت موتور B در یک جهت شروع به چرخش ميکند. اگر به هر دوی این پینها منطق High و یا به هر دو منطق Low اعمال شود، موتور متوقف خواهد شد.
پین ENB : برای کنترل سرعت موتورB استفاده ميشود. اعمال منطق High به این پین (یا بطور معادل نگه داشتن جامپر در سر جای خود) سبب شروع به کار کردن موتور B و برداشتن جامپر سبب متوقف شدن موتور خواهد شد. برداشتن جامپر و اتصال پین به ورودی PWM امکان کنترل سرعت موتور B را فراهم خواهد کرد.
پینهای خروجی OUT1 و OUT2 به موتورA متصل مي شوند.
پینهای خروجی OUT3 و OUT4 به موتور B متصل مي شوند.
موتورگیربکس پلاستیکی (که البته با نام های دیگری مانند گیربکس دو طرفه ، گیربکس ۶ چرخ دنده ، چهار چرخ هم شهرت دارد ) جزء اساسی ترین ارکان یک ربات و یک پکیج آموزشی می باشد که به سادگی با درایور قابل کنترل است
راه اندازی ماژول درایور موتور L298 با آردوینو UNO
اکنون که با این ماژول آشنا شده ایم، می توانیم در مورد نحوه راه اندازی ماژول درایور موتور L298 با آردوینو برای کنترل موتور DC صحبت کنیم. برای این کار در ابتدا منبع تغذیه موتورهای DC را وصل ميکنیم. بنابراین یک منبع تغذیه خارجی ۹ ولت به ترمينال VCC متصل ميکنیم. با توجه به افت ولتاژ داخلی ماژول، موتورها حداکثر ۷ ولت دریافت خواهند .
در گام بعد لازم است تغذیه ۵ ولتی مدارت منطقی L298 را تامين کنیم. به همین دلیل از رگولاتور داخلی ۵ولت ماژول درایور استفاده ميکنیم و لذا جامپر رگولاتور را در سر جای خود قرار مي دهیم.
راه اندازی با ماژول آردوینو نانو Arduino nano
الف ) شماتیک اتصالات بر روی بردبورد
پایه IN1ماژول درایور موتور L298 را به پایه ۹ دیجیتال آردوینو Arduino اتصال دهید.
- پایه IN2ماژول درایور موتور L298 را به پایه ۸ دیجیتال آردوینو Arduino اتصال دهید.
- پایه Enable Aماژول درایور موتور L298 را به پایه ۱۰ دیجیتال آردوینو Arduino اتصال دهید.باید جامپر اتصال این پایه را بردارید تا سیم اتصال قرارگیرد .
- دو سر سیمموتور را به خروجی OUT1 و OUT2 درایور موتور L298 اتصال دهید.
- سیم مثبت آداپتور ۹ ولت را که فیوز محافظ سر راهش دارد به پایه ۱۲ ولت درایور موتور L298اتصال دهید.در این آزمایش نیز از آداپتور ۹ ولت همراه بسته استفاده کنید .
- سیم منفی آداپتور ۹ ولت را به پایه GND درایور موتور L298 اتصال دهید.
- پایه GND ماژول آردوینو را مطابق شکل به پایه GND درایور موتور L298 یا سیم منفی ترمینال آداپتور اتصال دهید.
با انجام مراحل فوق، چیزی شبیه به شکل زیر خواهیم داشت:
راه اندازی با ماژول آردوینو اونو Arduino UNO
الف ) شماتیک اتصالات بر روی ماژول
کد نویسی آردوینو :
لینک کد برنامه آردوینو : ۰۲۲ ۰۲۳ sketch_L298n_DC_motor_Driver.ino
- // L298N DC MOTOR DRIVER MODULE
- void setup() {
- pinMode(8, OUTPUT); //IN2
- pinMode(9, OUTPUT); //IN1
- pinMode(10, OUTPUT); //Enable Pin
- }
- void loop() {
- // Full speed forward
- digitalWrite(8, HIGH);
- digitalWrite(9, LOW);
- digitalWrite(10, HIGH);
- delay(2000);
- // Full speed backward
- digitalWrite(8, LOW);
- digitalWrite(9, HIGH);
- digitalWrite(10, HIGH);
- delay(2000);
- // ۰ to 100% speed in forward mode
- for (int i=0;i<256;i++)
- { digitalWrite(8, HIGH);
- digitalWrite(9, LOW);
- analogWrite(10, i);
- delay(20);
- }
- delay(50);
- // ۰ to 100% speed in backward mode
- for (int i=0;i<256;i++)
- { digitalWrite(8, LOW);
- digitalWrite(9, HIGH);
- analogWrite(10, i);
- delay(20);
- }
- delay(50);
- }
همانطور که در کد مشاهده می کنید موتور ابتدا ۲ ثانیه در جهت جلو و ۲ ثانیه در جهت عقب حرکت می کند. سپس موتور ایستاده و سرعت آن از ۰ تا ۱۰۰ درصد در جهت جلو با شتاب ثابت افزایش پیدا می کند و بعد همین حرکت موتور در جهت بر عکس انجام می شود.
وزن | 100 kg |
---|---|
ابعاد | 10 × 10 × 5 cm |