درایور موتور L298N هر درایوری ویژگیهای منحصر به فرد خود را دارد. پیش از این راه اندازی موتورهای مختلف با درایورهای متنوع را در دیجی اسپارک منتشر کردهایم. اما یکی از درایور موتورهای ساده و ارزان قیمت، که مورد توجه دانش آموزان و دانشجوها میباشد. درایور موتور L298N میباشد. تراشه این درایور خیلی قدرت و پتانسیل مناسبی ندارد. صرفا یک درایور جهت راه اندازی موتورهای ارزان قیمت و ساده است. از اینرو انتظار خیلی زیادی از این درایور نداشته باشید. در ادامه این مجموعه آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
درایور موتور L298N با هیت سینک
درایور موتور L298N از تراشه دوبل L298 یک رگولاتور داخلی ۵ ولت ۷۸M05 تشکلیل شده است. در ساختار این درایور موتور از مدار H Bridge یا همان پل H استفاده شده است. این مدار توانایی درایور و کنترل جریان را دارد که توسط پایه PWM کنترل میشود. پایه PWMیا همان مدولاسیون پهنای باند کنترل مدت زمان یک پالس را انجام میدهد و در نتیجه ولتاژ خروجی را کنترل خواهد کرد. ولتاژ کاری درایور موتور L298 بین ۵ تا ۳۵ ولت DC است. جهت مطالعه اطلاعات بیشتر به بخش اول آموزش مراجعه کنید.
آموزش راه اندازی موتور DC با درایور موتور L298N و برد آردوینو – بخش اول
در این آموزش توسط ولوم کشویی Slide Potentiometer، سرعت موتور DC را کنترل میکنیم. برای کنترل دور موتور از درایور موتور L298N استفاده شده است. با کشیدن ولوم از سمت Decreas به Increas، سرعت حرکت موتور افزایش مییابد.
ماژول ولوم کشویی Slide Pot
ماژول ولوم کشویی Slide Potentiometer شامل یک مقاومت متغیر خطی با حداکثر ۱۰ کیلو اهم است. ساختار ماژول ولوم همانند یک کلید کشویی است. هنگامی که اسلاید کشویی ماژول ولوم را از یک طرف به طرف دیگر میکشید، ولتاژ از ۰ ولت تا ولتاژ Vcc تعیین شده، تغییر خواهد کرد. ماژول ولوم کشویی Slide Pot دارای خروجی آنالوگ دو کاناله بین ۰ تا Vcc است. ولوم قرار گرفته بر روی ماژول حدودا در طول ۶٫۵ سانتیمتر جا به جا شده و روان حرکت خواهد کرد. نوع ماژول به صورت خطی Linear است. ولتاژ کاری ولوم کشویی ۳٫۳ تا ۵ ولت DC است. این ماژول قابلیت راه اندازی با آردوینو Arduino، MCU و AVR را خواهد داشت. ماژول ولوم کشویی دارای ۶ پایه است. دارای ۲ پایه Vcc و ۲ GND و دو کانال OTA و OTB است. با توجه به ساختار ماژول میتوان از آن برای تنظیم و کنترل نور محیط، تنظیم صدای بلندگو استفاده کرد. همچنین با توجه به دو کاناله بودن ماژول ولوم کشویی Slide Potentiometer از آن برای کنترل کانال های راست و چپ در یک ربات استفاده نمود. تا به حال دو آموزش مجزا جهت راه اندازی و استفاده از ماژول ولوم کشویی در سایت منتشر شده است که از طریق لینک های زیر میتوانید مطالعه کنید.
آموزش کار با ماژول ولوم کشویی ۱۰ کیلو اهم Slide Potentiometer و آردوینو
آموزش ساخت میکسر صوتی با ماژول ولوم کشویی Slide Potentiometer آردوینو
اتصال درایور موتور L298 به آردوینو Arduino
- دو خروجی ترمینال ۱۲ ولت و GND درایور موتور L298N را به باتری اتصال دهید.
- از GND آردوینو Arduino به GND درایور موتور L298N اتصال دهید.
- پایه ENA درایور موتور L298 را به پایه ۱۰ دیجیتال آردوینو Arduino اتصال دهید.
- پایه IN1 درایور موتور L298 را به پایه ۸ دیجیتال آردوینو Arduino اتصال دهید.
- پایه IN2 درایور موتور L298 را به پایه ۹ دیجیتال آردوینو Arduino اتصال دهید.
اتصال موتور DC به درایور موتور L298
- یک قطب موتور DC را به خروجی OUT1 درایور موتور L298 اتصال دهید.
- قطب دیگر موتور DC را به خروجی OUT2 درایور موتور L298 اتصال دهید
کدنویسی درایور موتور L298N
جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.
تحلیل کد آردوینو Arduino
تعریف ورودی درایور موتور L298N
1 2 3 4 |
int in1 = 8; //اتصالات درایور موتور int in2 = 9; int ENA = 10; // فعال کردن پایه PWM int speedMotor; // تعریف یک متغیر برای موتور |
تعریف خروجی
1 2 3 4 5 6 7 |
pinMode(8, OUTPUT); // تعریف خروجی pinMode(9, OUTPUT); // تعریف خروجی pinMode(10, OUTPUT); // تعریف خروجی |
تعریف یک تابع حلقه برای موتور DC Motor
1 2 3 4 5 6 7 |
void MotorDC(){ // ساخت یک تابع برای کنترل سرعت و مسیر حرکت digitalWrite(in1, LOW); // تغییر وضعیت بین دو حالت High و low جهت تغییر مسیر digitalWrite(in2, HIGH); // "" |
ارسال فرمان پایه آنالوگ ولوم کشویی Slide Pot
1 2 3 4 |
speedMotor = analogRead(A0); // انتخاب پایه A0 برای ولوم کشویی و ذخیره آن در یک متغیر analogWrite(ENA,speedMotor);// ارسال فرمان به موتور |
تکرار حلقه LOOP
1 2 3 4 5 6 |
void loop() { MotorDC(); // تنها یک حلقه در بالا تعریف کردیم } |
وسایل مورد نیاز
ماژول ولوم کشویی Slide Potentiometer
برد بورد کوچک مخصوص کیت های DIY
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفتهایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیت، مدار جدیدی ایجاد کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگ «#دیجی_اسپارک» و «#دانشجوکیت» و «#digispark» و «#daneshjookit» منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
چراغ روی درایور من روشن نمیشه و کدها رو هم به درستی کپی کردم و ارور ندارم
اتصالاتم کمی گیج کننده شده و میترسم به برد آسیب بزم
خاهش میکنم سریع جواب بدین
سلام
این اتفاق زمانی می افتد که اتصال بین آردوینو و درایور موتور برقرار نباشد.
از GND آردوینو به GND درایور موتور اتصال دهید، مشکل برطرف خواهد شد.
نتیجه را از همین طریق اعلام کنید.
سلام و درود
ENA و ENB در کدها به چه معنی است؟
ممنون میشم جواب بدین
سلام از توجه شما ممنونم.
همانطور که در متن آموزش و کدها نوشته شده است از این دو پایه جهت فعال کردن پایه PWM استفاده میشود.
سلام
به جای ماژول slide که در آموزش استفاده کردین میشه از ولوم ساده استفاده کرد؟
سلام
بله هیچ تفاوتی ندارد و میتوانید از ولوم استفاده کنید.
سلام من میخوام دور موتور۱۲ ولت را کنترل کنم ولی وقتی عدد خط enableرا بین ۰ تا ۲۵۵ با دستور (analogwhrite(enable,255 تغییر میدم خط enable فعال میشه ولی دور موتور تغییر نمیکنه و از عدد۱۲۰ به پایین هم موتور روشن نمیشه ممنون میشم راهنمایی کنید
سلام مجدد
تابع مورد استفاده شده تاثیری در عملکرد مدار نخواهد داشت. با استفاده از یک پتانسیومتر و map کردن خروجی PWM، سرعت موتور را تنظیم نمایید.
سلام
از کجا میتونم موتورهای در تصویر خرید کنم ؟
سلام
به سایت دانشجوکیت مراحعه کنید. لینک آن را در زیر قرار میدهم.
موتور گیربکس دار
با سلام من تازه وارد دیجی اسپارک شدم و من میخام ماشین کنترلی درست کنم ولی من کد های برد توسعه NodeMcu به همراه ماژول وایفای ESP8266 با مبدل CP2102 را بلد نیستم
با سلام
کاربر گرامی از آموزش زیر میتوانید استفاده کنید.
دسته بندی -برد Nodemcu
سلام
میشه از داریور ۲۹۳ استفاده کرد و از همین کد استفاده کرد؟
سلام
از کد آردوینو با اتنخاب صحیح پایه ها میتوانید استفاده کنید.
سلام خداقوت وتشکر بابت مطالب مفیدتون سوال درمورد فرکانس پالس pwm داشتم
فرکانس pwm در اینجا چنده و چطور میشه تغییر داد؟
با سلام
در این خصوص میتوانید با استفاده از یک پتانسیومتر فرکانس pwm را بخوانید. با map کردن میتوانید اینکار را انجام دهید.
سلام
مهدی هستم. من پروژه ای دارم که با استفاده از یک تک سوئیچ و موتور دی سی و l298 و آل سی دی ۱۶*۲ و آردینیو سرعت موتور را کنترل میکنه. هرچی تو سایتا گشتم چیزی پیدا نکردم . راهنمایی می فرمایید
با سلام
در همین آموزش کنترل سرعت موتور DC با ولوم اجرا شده است و از آن میتوانید استفاده کنید و در صورت استفاده از کلید بایستی در کدها تغییرات اعمال کنید.
با سلام.
من پروژه ای با عنوان کنترل سرعت موتور دی سی با استفاده از برد آردوینو و l298 و یک تک سوئیچ و نمایشگر ال سی دی ۱۶*۲ دارم به این صورت که با هر بار تحریک تک سوئیچ و نمایش بر روی ال سی دی موتور از صفر و ۲۰ درصد و ۵۰درصد و… سرعتش تغییر می کند. لطفا راهنمایی بفرمایید. ممنونم
با سلام
در کامنت قبل توضیح داده شد. همچنین در خصوص استفاده از ال سی دی از آموزش راه اندازی ۳ مدل ال سی دی کاراکتری LCD با آردوینو Arduino استفاده نمایید.
سلام
من با این درایور میخوام استپ موتور ۴سیم راه بندازم
لطفاً کامل بگین چه کنم
با سلام
کاربر گرامی درخواست شما با موضوع آموزش همخوانی ندارد. در یکی از آموزش های مرتبط سوال خود را مطرح فرمایید.
سلام خسته نباشید.
ممنون از آموزش خوبتون.
اگه تو پروژه کنترل موتور dc بخواهیم سرعت رو اندازه بگیریم وکنترل کنیم در این صورت چ تغییراتی لازمه ؟
تاکومتر یا انکودر باید به سیستم اضافه شه؟
با سلام
ضمن تشکر از شما،این مورد توسط بنده تست نشده است. بله از انکودر به همراه اپتوکانتر استفاده کنید.
با سلام از سایت جامع
قسمتی که ولتاژ ۵ و دیگری ولتاژ ۱۲ میشه توضیح بدید لطفا و اینکه چرا موتور رو به ۲۹۸ وصل می کنم کار نمکنه ولی مستقیم باطری رو به موتور می زنم کار می کنه از ۴ باطری ۱٫۵ استفاده کردم
با سلام
ولتاژ کاری درایور موتور ۱۲ است.