L298N یکی از پرکابردترین درایورهاییست که می توان برای راه اندازی موتورهای DC با اردوینو از آن استفاده کرد. آموزش های متعددی در رابطه با راه اندازی این درایور با آردوینو در دیجی اسپارک منتشر شده است. اما در این آموزش قصد داریم تا با استفاده از درایور L298N و ماژول بلوتوث HC-05 دو موتور DC را از طریق اپلیکیشن در گوشی هوشمند کنترل کنیم. در یک کلام ربات بلوتوثی بسازیم. در ادامه این آموزش شیوه اتصالات و کدهای آردوینو را توضیح خواهیم داد. با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
قطعات مورد نیاز
درایور L298N ربات بلوتوثی
آردوینو به تنهایی نمی تواند جریان مورد نیاز برای حرکت موتورها را تامین کند زیرا حداکثر جریان خروجی اردینو ۴۰mA است و اتصال موتور باعث اسیب زدن به میکروکنترلر می شود. از این رو برای راه اندای موتورها با آردوینو از درایور موتور استفاده می شود. درایورها در یک بیان کلی باعث تقویت جریان ورودی به موتورها می شوند. ماژول درایو موتور L298N یک ماژول بسیار کاربردی برای مدیریت همزمان ۲ موتور یا بیشتر می باشد. از این ماژول برای راه اندازی استپر موتور(موتور پله ای ) نیز می توان استفاده کرد این ماژول به همراه هیت سینک مخصوص آی سی ارائه می شود تا بتوان حرارت ناشی از جریان دهی را کاهش داد. این درایور برای هر کانال مدیریت موتورها توانایی جریان دهی تا ۲ آمپر و ۳۵V را دارد و جریان مصرفی پردازش ان از ۰ تا ۳۶mA متغیر است.درایور L298N توانایی درایو و کنترل جریان و تغیر ولتاژ از طریق تغیر پالس PWM را دارد. این ماژول ۳ ترمینال ورودی (GND , 12-5V , 5V) را دارد. واضح است که پایه ۵V برای اتصال به VCC اردینو یا میکروکنترلر ،۱۲V-5V به VCC منبع تغذیه خارجی و GND برای اتصال GND مشترک اردینو و اداپتور تعبیه شده است. دو پین هدر برای فعال سازی پایه سیگنال PWM هر دو موتور قرار دارد. بر روی برود ۴ خروجی برای اتصال به میکرو کنترلر قرار گرفته شده است. و در نهایت بر روی این درایور موتور ۴ پین هدر برای ورودی و اتصال به دو موتور DCقرار گرفته شده است.
ماژول بلوتوث HC05
ماژول بلوتوث HC05 با بورد یک ماژول بلوتوث با امکانات فراوان میباشد.,ولتاژکاری آن ۳٫۳V تا ۶V و جریان کاری ۵mA است. توانایی پشتیبانی از دو مد master و slave را دارد و پورت سریال را هم به صورت بی سیم در اختیار شما میگذارد از این رو میتوانید از ماژول بلوتوث HC05 در طراحی خانههای هوشمند ، دستگاههای بی سیم و … استفاده کنید. با استفاده از ماژول HC05 Bluetooth میتوان دیتا را در فواصل معین از جمله ۱۰ تا ۳۳ متر با استفاده از پروتکل بلوتوث BT دریافت و ارسال کرد.این ماژول به سادگی به تلفن های هوشمند وصل می شود. از این ما جهت ما از این ماژول برای کنترل بی سیم ربات استفاده خواهیم کرد.
بدنه ربات و منبع تغذیه
اینکه بدنه و شاسی ربات بلوتوثی خود را چگونه طراحی میکنید به خلاقیت خودتان بستگی دارد. در نظر بگیرید درایور موتور میتواند تعدادی موتور DC را بسته به جریان مصرفی شان کنترل کند. بدین صورت که هر خروجی درایور یک سمت ربات را به حرکت در خواهد آورد. در نتیجه باید از حداقل دو موتور DC و عمدتا از زوج موتور استفاده کنید. حتما از موتور گیربکس دار در ربات استفاده کنید و اگر میخواهید سرعت ربات بیشتر باشد چرخهای پهنتری بکار بگیرید. سعی کنید از قطعاتی استفاده کنید که وزن کمتر ومقاومت بیشتری داشته باشند.
برد آردوینو به تنهایی نمی تواند جریان لازم موتور هارا تامین نماید از اینرو از درایور موتور در طراحی ربات استفاده می شود. شما به یک منبع تغذیه برای تامین جریان درایور نیاز خواهید داشت. این منبع میتواند باتری خشک یا لیتیمی یا حتی پاوربانک باشد. میتوانید از آداپتور هم به صورت سیمی استفاده کنید. همه این مسائل بسته به خلاقیت و قطعاتی که در اختیار دارید است. این نکته مهم را هم فراموش نکنید اتصالات اشتباه میتواند به قطعات شما اسیب بزند.
اتصالات مدار
اتصالات درایور
- GND ماژول L298N به GND اردوینو و منبع تغذیه ۱۲V یا ۵V
- ۱۲V ماژول L298N به VCC منبع تغذیه خارجی
- ۵V ماژول L298N به ۵V اردوینو
- EN1 ماژول L298N به پین دیجیتال ۱۰ اردوینو
- I1 ماژول L268N به پین دیجیتال ۸ اردوینو
- I2 ماژول L268N به پین دیجیتال ۹ اردوینو
- I3 ماژول L268N به پین دیجیتال ۱۲ اردوینو
- I4 ماژول L268N به پین دیجیتال ۱۳ اردوینو
- EN2 ماژول L298N به پین دیجیتال ۱۱ اردوینو
- به خروجی های ۱و۲ درایور موتور های خود را وصل کنید دقت کنید که جهت حرکت موتورها یکسان باشد.
اتصالات ماژول بلوتوث
- TX ماژول بلوتوث بهRX اردوینو
- RX ماژول بلوتوث به TX اردوینو
- VCC ماژول بلوتوث به ۵V اردوینو
- GND ماژول بلوتوث به GND اردوینو
کدهای آردوینو
چندنکته را قبل از آپلود کدها در نظر بگیرید. هنگام آپلود کدها به برد آردوینو، ماژول بلوتوث HC-05 را جداکنید یا به عبارتی ماژول بلوتوث را بعد از اپلود کدها وصل کنید. میتوانید از طریق سریال مانیتور دستورهای ارسال شده به ماژول بلوتوث را ببینید. چنانچه روش آپلود کدها را نمیدانید به آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE مراجعه کنید.
#define E1 10 // Enable Pin for motor 1 #define E2 11 // Enable Pin for motor 2 #define I1 8 // Control pin 1 for motor 1 #define I2 9 // Control pin 2 for motor 1 #define I3 12 // Control pin 1 for motor 2 #define I4 13 // Control pin 2 for motor 2 String readString; int SPEED; void setup() { Serial.begin(38400); pinMode(E1, OUTPUT); pinMode(E2, OUTPUT); pinMode(I1, OUTPUT); pinMode(I2, OUTPUT); pinMode(I3, OUTPUT); pinMode(I4, OUTPUT); analogWrite(E1, 255); // Run in full speed analogWrite(E2, 255); // Run in full speed } void loop() { while (Serial.available()) { delay(50); char c = Serial.read(); readString += c; } if (readString.length() > 0) { Serial.println(readString); //main code that work repeated analogWrite(E1, 255); // Run in full speed analogWrite(E2, 255); // Run in full speed if (readString == "f") { //forward command forward(); } if (readString == "b") { //backward command backward(); } if (readString == "r") { //right command right(); } if (readString == "l") { //laft command left(); } if(readString == "s") { //stop command stoped(); } readString=""; } } void forward(void){ digitalWrite(I1, HIGH); digitalWrite(I2, LOW); digitalWrite(I3, HIGH); digitalWrite(I4, LOW); } void backward(void){ digitalWrite(I1, LOW); digitalWrite(I2, HIGH); digitalWrite(I3, LOW); digitalWrite(I4, HIGH); } void right(void){ digitalWrite(I1, LOW); digitalWrite(I2, HIGH); digitalWrite(I3, HIGH); digitalWrite(I4, LOW); } void left(void){ digitalWrite(I1, HIGH); digitalWrite(I2, LOW); digitalWrite(I3, LOW); digitalWrite(I4, HIGH); } void stoped(void){ digitalWrite(I1, LOW); digitalWrite(I2, LOW); digitalWrite(I3, LOW); digitalWrite(I4, LOW); }
اپلیکشین موبایل
شما برای کنترل ربات از طریق بلوتوث به یک موبایل هوشمند اندروید و یک نرم افزار نیاز خواهید داشت.اپ های فراوانی را با این مضمون می توانید در گوگل پلی پیدا کنید دقت گنید اپ مورد نظر باید دستور های مدنظرشمارا طبق کدها ارسال نماید.کار با این اپلیکیشن بسیار ساده است امکاناتی نیز دارد که میتوانید بسته به خلاقیت و قطعات خود ربات بلوتوثی خود را ارتقا دهید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام
رفیق دمت گرم کارت عالیه
میشه یه ماژول دوربین اضافه کنی و آموزشش رو بزاری؟یا راهنما کنی چطور ماژول دوربین(اگه باشه) اضاف کنم به ربات؟
سلام
من مدار رو بستم و برنامه هم هیچ مشکلی نداره
وقتی به ماژول وصل میشم کد های ارسالی ماژول رو سریال مانیتور میاد و مشکلی نداره
اما بهl298 فرمان نمیده
با سلام
تغذیه l298 را بررسی کنید و مطمئن شوید ولتاژ کافی برای راه اندازی در اختیار درایور موتور قرار گرفته شده است.
با سلام
متشکرم از توجه شما،اینکه این اموزش رو تغییر بدم مستلزم داشتن تجهیزات مدنظر شما و کار روی اوناست و خب در این زمان متاسفانه مقدور نیست. اینکه چه دوربین بی سیمی می تونه در این نرمافزار جواب بده اطلاعی ندارم شاید دوربین های بی سیم کوادکوپتر ها جواب بده اما بنده این موضوع رو امتحان نکردم.
سلام اقا یاورزاده میخواستم اگه امکانش هست برام فایل verify گرفته اردینیو رو برام بفرستید چون این نوشته بعضی از علامت ها برعکسه ارور میده.
با سلام
ارور را ارسال کنید تا بررسی شود.
سلام
با تشکر از همه عوامل دیجی اسپارک
من این رو ساختم و کد رو روی اردوینو اپلود کردم همه چی خوبه ولی یه ایراد کوچیک دارم اون هم اینه که وقتی اردوینو رو از کامپیوتر جدا میکنم دیگه ماژول بلوتوث به گوشی وصل نمیشه بنظرتون چیکار باید بکنم.
با سلام
این مورد ارتباطی به اتصال به سیستم ندارد. تغذیه جداگانه را بررسی کنید.
سلام.
من میخوام یه سروو بهش اضافه کنم ولی بلد نیستم میشه راهنمایی کنید.
ممنون میشم راهنمایی کنید.
با سلام
برای این منظور به آموزش کنترل سرو موتور با ماژول بلوتوث HC-05 و برد آردوینو Arduino و یا آموزش کنترل سرو موتور Servo با استفاده از ماژول بلوتوث HC05 و برد آردوینو مراجعه کنید.
سلام خسته نباشید.من همه کار کردم حتی از رو گوشی ارسال میشه ول خب تو برنامه همش علامت سوال میاد و موتور هام روشن نمیشه چکار کنم؟؟
سلام
ممنون از توجه شما، علامت سوال را در کجا مشاهده می کنید؟ در زمان متصل بودن موبایل خود سریال مانیتور اردوینو را چک کنید ببینید داده دریافت میشود یا خیر؟
من اگه بخوام این دستگاه رو به لامپ های اتاقم وصل بکنم و با بلوتوث خاموش و روشنشون بکنم باید چیکار بکنم لطفا راهنمایی بکنید مرسی ❤
با سلام و خسته نباشید خدمت شما
آیا میشود برای منبع تغذیه از ۲ باتری لیتیومی ۱۸۶۵۰ استفاده شود؟ ممنون میشم بگید.
با سلام
بله امکان پذیر است. ولی ولتاژ خروجی را بایستی حتما متناسب با مصرف کننده تنظیم کنید.
ممنون از سایتتون
سپاس از همراهی شما
سلام آیا نیاز به کتابخانه SoftwareSerial.h
نیست
سلام خیر نیازی نیست چون ماژول بلوتوث از طریق پین های سریال به اردوینو متصل میشود.
سلام خسته نباشید ببخشید توی این مدار نیازی به برد بورد نیست؟ مقاومت یا ترانزیستور چی؟ اگه نیست به میکرو کنترل آسیب وارد نمیکنه؟
با سلام
بستگی به مدل راه اندازی و نصب دارد. میتوانید از برد بورد استفاده کنید و یا استفاده نکنید. در خصوص دیگر قطعات هم در آموزش توضیح داده شده است. دقت داشته باشید که هر پروژهی الکترونیک به چندین روش مختلف قابل پیاده سازی است. اگر در پروژه دیگری از اقلامی که نام بردید استفاده شده است، ارتباطی با این پروژه ندارد.
سلام
وقت بخیر
تشکر بابت مطالب مفیدتون
میشه راهنمایی کنید چجوری به جای شیلد l298 از شیلد درایور l293 استفاده کنم؟
۴ تا موتور میخوام نصب کنم
با سلام
در این صورت بایستی در کدها تغییرات ایجاد کنید. آدرس دهی پایهها را هم بایستی رعایت کنید.
سلام برای من کار نمیکنه .
با سلام
دقیقتر مورد را اعلام کنید تا بتوانیم به شما در رفع مشکلتان کمک کنیم.
با سلام خدمت شما. اگر امکانش هست میشه بفرمایید که پایه ی EN1 و پایه EN2 دقیقا کجای ماژول L298N قرار دارد
ممنون میشم جواب بدید.
باتشکر
با سلام
روی ماژول پایههای آن چاپ شده است. همان بخشی که پین هدر نری دارد.
طبق راهنمای شما مدار را نصب کردم.ولی در آپلود کردن کد در نرم افزار آردوینو با رور مواجه شدم.Arduino: 1.8.10 Hourly Build 2019/04/02 05:33 (Windows 10), Board: “Arduino/Genuino Uno”
Sketch uses 3894 bytes (12%) of program storage space. Maximum is 32256 bytes.
Global variables use 214 bytes (10%) of dynamic memory, leaving 1834 bytes for local variables. Maximum is 2048 bytes.
An error occurred while uploading the sketch
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
من باید چکار کنم
با سلام
به نظر میرسد که کدهای دیگری هم در حال آپلود روی آردوینو هستند.
چگونه کدها را حذف کنم یا بقولی آردوینو را فرمت کنم.
با سلام
نیازی به این کار نیست.
پس چرا عمل نمیکند
با سلام
لطفا ارور دریافتی را ارسال کنید تا بررسی شود.
سلام و عرض خسته نباشید
بنده تمامی مراحل را طی کردم اما برنامه مرتبط به گوشی را نمیتونم پیدا کنم
میشه فایل برنامه را برای بنده ارسال کنید
یا نام برنامه را بگوئید
تشکر
باید اپلیکیشن ارتباط سریال بلوتوثی را نصب کنید.
طبق راهنمای شما مدار را نصب کردم.ولی در آپلود کردن کد در نرم افزار آردوینو با رور مواجه شدم.Arduino: 1.8.10 Hourly Build 2019/04/02 05:33 (Windows 10), Board: “Arduino/Genuino Uno”
Sketch uses 3894 bytes (12%) of program storage space. Maximum is 32256 bytes.
Global variables use 214 bytes (10%) of dynamic memory, leaving 1834 bytes for local variables. Maximum is 2048 bytes.
An error occurred while uploading the sketch
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
من باید چکار کنم
با سلام
اتصالات ماژول ها از برد آردوینو را جدا کرده و سپس اقدام به آپلود کدها کنید. در صورتی که هنوز مشکل داشتید، اطلاع رسانی کنید.
سلام خیلی ممنون از اموزش خوبتون فقط وقتی من کد ها رو روی اردوینو IDE پیست میکنم خطا میده که متغیر E1 تعریف نشده
این اتفاق برای همه متغیر ها میافته خواستم بپرس اگه خودم خواستم متغیر اضافه کنم باید از چه نوعی باشه؟int جواب میده؟
سلام توی قسمت اتصالات یه سری اتصالات به درایورL298N وصل شده و بعضی به درایور L268N میشه توضیح بدید دو تا درایور داره و یا اشتباه تایپی هست
با ماژول HC-06 هم قابل راه اندازی هست؟
بله امکان پذیر است. ولی ارتباطتان یک طرفه خواهد بود.
سلام من کامل این مدار رو بستم
فقط گوشیم ماژول hc05 رو پیدا میکنه
رو اتصال رو هم اوکی میکنم رمز ۱۲۳۴ ر هم وارد میکنم اما اتصال برقرار نمیشه
لطفا راهنمایی کنید مشکل از کجاس
با سلام و تشکر از شما
تنظیمات بادریت را بررسی کنید.
سلام فایل اردینیوش رو میخواستم
با سلام
کاربر گرامی تمامی آموزش ها به صورت متنی و کامل است. از راه اندازی تا اجرا نوشته شده است. مطالعه کنید.
سلام امکانش هست فایلشو برام ارسال کنید ممنون میشم
با سلام
کاربر گرامی تمامی آموزش ها به صورت متنی و کامل است. از راه اندازی تا اجرا نوشته شده است. مطالعه کنید.
سلام من میخوام همین پروژه رو با برد l293 انجام بدم میشه برنامه شو قرار بدید
با سلام
در این خصوص آموزشی تهیه نشده است.
سلام با l293 میشه انجام داد من برد I293دارم میخواستم با اون درست کنم میشه کدهاشو قرار بدید یا آموزش رو بزارید ممنون میشم
با سلام
در این خصوص آموزشی تهیه نشده است. درخواست شما بررسی خواهد شد.
سلام من ربات رو ساختم ولی نمیدونم وقتی میخوام کنترلش کنم پیام میده ولی ربات راه نمیره
با سلام
بایستی بررسی کنید که ماژول بلوتوث در مد درستی قرار گرفته باشد. حتما از طریق ارتباط سریال برد آردوینو این مورد را بررسی کنید.
سلام من تمامی اتصالات را درست انجام میدهم اما وقتی دستوری را با گوشی اجام میدهم موتور ها کار نمیکند سریال مانیتور را هم چک کردم داده دریافت میشود را فقط علامت سوال میاد
با سلام
کاربر گرامی این مورد را بایستی از طریق ارتباط سریال آردوینو بررسی کنید، تا مطمئن شوید که ماژول بلوتوث در مد کاری مناسب قرار گرفته باشد.
سلام و عرض خسته نباشید
لطفا اسم برنامه مرتبط به گوشی رو اعلام کنید چون برنامه را پیدا نمیکنم
یا اگر امکانش هست فایل را برآن ارسال کنید
لطفا متن را به دقت مطالعه کنید، در بخش انتهایی لینک دانلود قرار دارد.
سلام چیکار کردی شد میشه بگی مرسی
با عرض سلام و خسته نباشید
من این پروژه رو انجام دادم ولی وقتی تو گوشی دکمه رو میزنم l298 و موتور ها واکنشی نشون نمیدن ولی درون سریال مانیتور وقتی کلیک میکنم فقط علامت سوال میاد.
مشکل از چیه؟
ممنون میشم بگین.
سلام
مهمترین نکته در استفاده از درایور موتور و موتور تامین تغذیه کافی است. اگر ولتاژ کافی نباشد، عملکرد مدار با اختلال رو به رو خواهد شد.
بررسی و نتیجه را اعلام کنید.
سلام خیلی عالی ممنونم
سپاس از همراهی شما
سلام خسته نباشید
وقتی کدها را ارسال می کنم و بعد بلوتوث را متصل میکنم اما بلوتوث به دستگاه متصل نمیشه
ممنون میشم از کمکتون
با سلام
سوالتان خیلی کلی است. تنظیمات مربوط به مد کاری ماژول بلوتوث را به درستی انجام داده اید؟ منظور این است که ماژول در حالت Pair قرار گرفته شده است؟
سلام من آرش هستم
آپلود که میشه کد چراغ L روی برد روشن نمیشه و کلا دستور نمی گیره ولی کاملا گوشی به بلوتوث وصل میشه چه کار کنم؟
با سلام
متظور از L چیست؟ کامل تر توضیح دهید.
سلام
آپلود که میشه
چراغ L روی برد روشن نمیشه
ولی کاملا گوشی به بلوتوث وصل میشه
سلام
وقت بخیر
من این ربات رو درست کردم ولی کار نمیکنه و کد ها هم مشکلی نداشت آپلود شده ولی موتور ها حرکت نمیکنه و ماژول بلوتوث هم به گوشی وصی میشه ولی یکی از موتور ها تکه تکه کار میکنه یکی دیگه اصلا کار نمیکنه.
اگه میشه لطفا مشکل رو بگید .
با تشکر
با سلام
تغذیه مدار را بررسی کنید.
باسلام کد ها همه درست اپلود میشه وسیم کشی هم درست تغذیه هم درسته سریال هم دریافت میشه و علامت سواله ؟ و متور ها کار نمی کنند ممنون میشم جواب بدید
با سلام
بادریت مناسب با ماژول بلوتوث را به درستی تنظیم نکردهاید.
سلام ببخشید اسم برنامه چیه
با سلام
لطفا سوالتان را دقیقتر مطرح کنید تا بتوانیم پاسخ درستی ارایه کنیم.
میشه شماتیک یا نقشه وصل شدن سیم ها به ماژول هارو واسم بفرستید یا بارگذاری کنید؟
با سلام
در کدها اتصالات توضیح داده شده است.
سلام جرا موتور درایور من روشن نشد
من شک کردم سیم هارا اشتباه زم و دو تا سوال داشتم
منظورتون از vcc چه بود همون منفی؟
و منظورتون از en1 وen2 چه بود
ممنون میشم اگه پاسخ بدید
با سلام
دیتاشیت را بررسی کنید.
سلام نمیشه بجای حروف اینگلسی برای دریافت دستور از بلوتوث از عدد استفاده کرد؟؟؟؟
با سلام
خیر امکان پذیر نیست.
سلام
من وقتی کنترل میکنم چراغ های RXوTX آردوینو روشن میشن ولی موتور ها کار نمی کنن
چیکار کنم ؟
با سلام
سریال مانیتور را بررسی کردید؟
سلام مجدد
میشه بگید چگونه این کار رو انجام بدم
من تازه وارد هستم و تجربه ای ندارم
سلام من یک مبتدی هستم میشه خیلی روان تر اموزش بدهید ممنون
با سلام
اگر مبتدی هستید، لازم است که پایه برنامه نویسی را بدانید.