درایور موتور 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
int in1 = 8; //اتصالات درایور موتور int in2 = 9; int ENA = 10; // فعال کردن پایه PWM int speedMotor; // تعریف یک متغیر برای موتور
تعریف خروجی
pinMode(8, OUTPUT); // تعریف خروجی pinMode(9, OUTPUT); // تعریف خروجی pinMode(10, OUTPUT); // تعریف خروجی
تعریف یک تابع حلقه برای موتور DC Motor
void MotorDC(){ // ساخت یک تابع برای کنترل سرعت و مسیر حرکت digitalWrite(in1, LOW); // تغییر وضعیت بین دو حالت High و low جهت تغییر مسیر digitalWrite(in2, HIGH); // ""
ارسال فرمان پایه آنالوگ ولوم کشویی Slide Pot
speedMotor = analogRead(A0); // انتخاب پایه A0 برای ولوم کشویی و ذخیره آن در یک متغیر analogWrite(ENA,speedMotor);// ارسال فرمان به موتور
تکرار حلقه LOOP
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 در اینجا چنده و چطور میشه تغییر داد؟
با سلام
در این خصوص میتوانید با استفاده از یک پتانسیومتر فرکانس pwm را بخوانید. با map کردن میتوانید اینکار را انجام دهید.
سلام
مهدی هستم. من پروژه ای دارم که با استفاده از یک تک سوئیچ و موتور دی سی و l298 و آل سی دی ۱۶*۲ و آردینیو سرعت موتور را کنترل میکنه. هرچی تو سایتا گشتم چیزی پیدا نکردم . راهنمایی می فرمایید
با سلام
در همین آموزش کنترل سرعت موتور DC با ولوم اجرا شده است و از آن میتوانید استفاده کنید و در صورت استفاده از کلید بایستی در کدها تغییرات اعمال کنید.
با سلام.
من پروژه ای با عنوان کنترل سرعت موتور دی سی با استفاده از برد آردوینو و l298 و یک تک سوئیچ و نمایشگر ال سی دی ۱۶*۲ دارم به این صورت که با هر بار تحریک تک سوئیچ و نمایش بر روی ال سی دی موتور از صفر و ۲۰ درصد و ۵۰درصد و… سرعتش تغییر می کند. لطفا راهنمایی بفرمایید. ممنونم
با سلام
در کامنت قبل توضیح داده شد. همچنین در خصوص استفاده از ال سی دی از آموزش راه اندازی ۳ مدل ال سی دی کاراکتری LCD با آردوینو Arduino استفاده نمایید.
سلام
من با این درایور میخوام استپ موتور ۴سیم راه بندازم
لطفاً کامل بگین چه کنم
با سلام
کاربر گرامی درخواست شما با موضوع آموزش همخوانی ندارد. در یکی از آموزش های مرتبط سوال خود را مطرح فرمایید.
سلام خسته نباشید.
ممنون از آموزش خوبتون.
اگه تو پروژه کنترل موتور dc بخواهیم سرعت رو اندازه بگیریم وکنترل کنیم در این صورت چ تغییراتی لازمه ؟
تاکومتر یا انکودر باید به سیستم اضافه شه؟
با سلام
ضمن تشکر از شما،این مورد توسط بنده تست نشده است. بله از انکودر به همراه اپتوکانتر استفاده کنید.
سلام
میخوام اطلاعات سرعت موتور dc رو با انکودر به دست بیارم(نمایش بدم تو متلب).
و بعدش به سرعتی که مدنظرخودمه تغییرش بدم به وسیله متلب(مثلا بگم سرعت ۱۵۰۰ باشه)
از چه قطعاتی باید استفاده کنم؟
آردینو uno?
موتور dc انکودر دار؟
مقاومت؟
درایو موتور؟
باتری چند ولتی؟
هر چیزی که لازمه واسه انجام این پروژه.
کلی تحقیق کردم و مطالب سایتون رو خوندم ولی به نتیجه نمیرسم دقیقا چی استفاده کنم.
اگه بشه از طریق ایمیل ارتباط داشته باشیم خیلی بهتره
با سلام
برای خرید تجیهزات قطعات لینک شده در همین آموزش مناسب است که از سایت دانشجوکیت میتوانید تهیه کنید.
برای دریافت پشتیبانی از طریق سایت به پرتال پشتیبانی مراجعه کرده و تیکت ارسال کنید.
با سلام از سایت جامع
قسمتی که ولتاژ ۵ و دیگری ولتاژ ۱۲ میشه توضیح بدید لطفا و اینکه چرا موتور رو به ۲۹۸ وصل می کنم کار نمکنه ولی مستقیم باطری رو به موتور می زنم کار می کنه از ۴ باطری ۱٫۵ استفاده کردم
با سلام
ولتاژ کاری درایور موتور ۱۲ است.
درود
اگه یه درایور مناسب تر که دقت بهتری هم داشته باشه بهمراه برنامه نویسیش ممنون میشم
با سلام
در این خصوص بایستی دیتاشیت درایورها را بر اساس ولتاژ و جریان مورد نیاز بررسی کنید.
سلام عرض ادب به شما لیدی پای عزیز
سپاس بخاطر ایجاد سایت مفید و آموزشی که تدارک دیدین
آموزش ماژول l298 بدون اردینو رو هم میشه توضیح بدین
با سلام
کاربر گرامی سپاس از همراهی شما
تست درایور موتور بدون آردوینو توسط بنده انجام نشده است.
سلام
میخوام اطلاعات سرعت موتور dc رو با انکودر به دست بیارم تو متلب نمایشش بدم.
بعدش با متلب سرعت موتور رو به مقداری که خودم میخوام برسونم.دقیق از چه قطعاتی باید استفاده کنم؟
آردینو uno.موتور dc انکودر.درایوموتور.مقاومت.؟
نمیتونم تو سایت ثبت نام کنم خطا میده.هیج راه ارتباطی دیگه وجود نداره؟لطفا ایمیل هم به اشتراک بزارید
با سلام
کاربر گرامی در این خصوص تجربه ی راه اندازی با متلب را ندارم.
از دیگر کاربرانی که در این خصوص اطلاعاتی دارند، تقاضا میکنم در بحث شرکت کنند.
خیلی معذرت میخوام چندین بار متن یکسان ارسال شده.
دلیلشم اینکه چک میکردم متن ارسالیم پاک شده بود ولی الان هست.
بله متوجه شدم
سپاس از همراهی شما
من تحقیق کردم فرقی نداره فقط برنامه نویسیش از متلبه و دستور رو از متلب میگیره همین.
من نمیدونم از چی استفاده کنم چه قطعاتی؟
قطعات در همین آموزش در قسمت وسایل مورد نیاز به فروشگاه لینک شده است.
درایور موتور l298
آردوینو
موتور
شما کلا متلبش رو فراموش کنید.
فک کنید همون برنامه نویسی عادیه.
شما قطعات پیشنهادیتون رو بگید لطفا
قطعات در متن آموزش لینک شده است.
سلام
نمیدونم بار چندمه که این متن رو میفرستم ولی باز میبینم که نیست.
میخوام اطلاعات سرعت موتور dc رو با انکودر به دست بیارم.(نمایش بدم تو متلب).
و بعدش به سرعتی که مدنظرخودمه تغییرش بدم به وسیله متلب.
از چه قطعاتی باید استفاده کنم؟
آردینو uno?
موتور dc انکودر دار؟یا جدا باشه
مقاومت؟
درایو موتور؟یا ترانزیستور
کلا هر چیزی که لازمه واسه این پروژه اسم دقیقش رو واسه خرید میخوام.
اگه بشه از طریق ایمیل ارتباط داشته باشیم خیلی بهتره
چنانچه هزینه ای داره این راهنمایی بنده در خدمتم
در سوال قبل پاسخ داده شده است.
بررسی کنید.
سلام ببخشید من یه سوال داشتم.من دوتا موتور براش دارم و میخواهم به رادیو کنترل وصل کنم که دستور بگیره.شما برای این کار چه بردی رو پیشنهاد میکنید.البته به غیر از اسپید کنترل چون برای موتور براش نیست..
با سلام
در این خصوص انتخاب برد وابسته به موتور و انتخاب درایور موتور است و بنده تجربه ای در این مورد ندارم. از دیگر کاربرانی که در این خصوص اطلاعاتی دارند، تقاضا میکنم در بحث شرکت کنند.
سلام
در رابطه با تغذیه ی L298N، اگر ما یک باطری ۹ ولتی را به ورودی ولتاژ موتور ها بدیم و جامپر هم در جای خودش قرار داشته باشه، ایا ولتاژ ۵ ولتی مورد نیاز برای بخش های منطقی درایور فراهم می شه و یا فقط با ولتاژ ورودی ۱۲ ولت هست که می تونه این کار رو بکنه؟
یه سوال دیگه هم داشتم
اگر ما یک باطری ۹ ولتی را به ورودی ولتاژ موتور ها بدیم و جامپر هم در جای خودش قرار داشته باشه، ایا می تونیم از بخش خروجی ۵ ولت این ماژول به عنوان منبع تغذیه ی بورد اردوئینو استفاده کنیم؟
با سلام
ورودی ماژول L298 ماکزییم ۴۶ ولت است و اگر از موتور ۱۲ ولت استفاده میکنید، حتما تغذیه کافی برای راه اندازی موتو را بایستی تامین کنید.
این ماژول ۲ ولت افت داره یعنی برای یه موتور ۹ ولت باید تقریبا ۱۲ ولت باطری داشته باشیم
ولی سوال من این نبود
منظورم این هست که اگر بخواهیم از این ماژول و باطری اون برای تغذیه اردوئینو استفاده کنیم، چه باطری باید وصل کنیم؟
پیشنهاد میشود تغذیه آردوینو را به صورت جداگانه تامین کنید.
سلام بدون استفاده از ولوم راه دیگه ای نداره سرعت موتور رو کم کرد؟
با سلام
در اینصورت از برنامه نویسی استفاده کنید. از توابع ریاضی مانند نگاشت map استفاده کنید.
سلام برای حرکت چپگرد و راستگرد موتور هم میشه لطفا راهنمایی کنید .