آردوینو آردوینو Arduino Uno آموزش آردوینو درایور موتور

آموزش راه اندازی شیلد درایور موتور Ardumoto با تراشه L298

ardumoto-driver-shield-with-l298-and-arduino--digispark
نوشته شده توسط پریسا پوربلورچیان

شیلد آردوموتو آردوینو Ardumoto Arduino با در اختیار داشتن تراشه L298 بسیار پرطرفدار است. ظاهر ساده و چیدمان ظریف قطعات شیلد رابط کاربری را بسیار ساده کرده و دیگر خبری از درایور های پیچیده نیست. از نکات قابل توجه و خاص این شیلد می‌توان به دو ال ای دی قرمز، بنفش اشاره کرد. با فعال شدن هر یک از موتورها، ال ای دی مربوط به آن موتور بر روی برد روشن می‌گردد. شیلد درایور موتور آردوموتو ardumoto توانایی درایور ۲ موتور را دارد که از طریق پین هدر و ترمینال امکان اتصال موتور به برد وجود دارد.

در هنگام انتخاب درایور موتور گزینه های بسیار زیادی وجود دارد. از این بین تراشه L298 طرفداران خاص خودش را دارد. بر روی شیلد تراشه مشکی رنگ L298P قابل مشاهده است. تراشه L298 یک درایور موتور دو کاناله است و کنترل آن بسیار ساده است. هر کانال درایور موتور L298 توانایی درایور موتور تا ۲ آمپر را خواهد داشت. البته دقت کنید جریان کافی در موتور بستگی به ولتاژ ورودی انتخابی دارد و باید جریان کافی به مدار برسد. جهت تغدیه درایور موتور میتوانید از یک باتری ۹ تا ۱۸ ولت استفاده کنید. برای هر کانال درایور موتور L298، دو نوع محتلف ورودی Direction و Enable وجود دارد که هر دو توسط متغیرهای Booolean، یعنی high و low در کدنویسی تعریف می‌شوند. توسط این ورودی ها میتوان موتورها را در دو جهت ساعتگرد و پادساعتگرد تعریف کرد. تراشه l298 به صورت پیش فرض دارای دو ورودی مسیریابی جهت کنترل هر کانال را دارد. توسط پایه PWM میتوانیم سرعت موتور DC را توسط این تراشه کنترل کنیم. در این خصوص جهت اطلاعات بیشتر در ادامه دیتاشیت L298 ضمیمه شده است.

 


بررسی کامل Ardumoto


درایور آردوموتو ardumoto Aduino یک درایور موتور دو کاناله با تراشه L298 Hbridge یا همان پل H است. همانطور که در بالا اشاره شد آردوموتوArdumoto توانایی کنترل دو موتور DC تا ۲ آمپر را دارد که با ترکیب آن با برد آردینو Arduino میتوان یک ربات با دو موتور پیاده سازی کرد. ولتاژ ورودی شیلد درایور موتور Ardumoto ماکزیمم تا ۱۸ ولت DC است. در ساختار این شیلد هر موتور از دو پین استفاده می‌کند. خروجی دیجیتال برای مسیریابی و PWM برای سرعت موتور در نظر گرفته شده است. طبق تنظیمات پیش فرض درایور موتور از پایه های ۲،۳،۴ و ۱۱ آردوینو Arduino استفاده می‌کند. در جدول زیر عملکرد هر یک از پایه ها جهت کنترل درایور توضیح داده شده است. به عنوان مثال پین شماره ۲ جهت درایور موتور A استفاده شده و پایه ۳ جهت کنترل سرعت موتور با PWM می‌باشد.

 

 


اتصالات موتور به درایور Ardumoto


اتصالات بسیار ساده است. بر روی شیلد دو خروجی ترمینال وجود دارد. ترمینال ۴ تایی، جهت اتصال دو موتور است که نحوهی اتصال موتور از قاعده خاصی پیروی نمی‌کند. همچنین بالای ترمینال پین هدر نری جهت اتصال موتور هم قرار گرفته شده است که کار را بسیار ساده کرده است. کافیست از یک کابل فلت مادگی جهت اتصال موتور به شیلد استفاده کنید و از اتصالات ترمینال رهایی یابید. همچنین یک ترمینال دوتایی بر روی برد جهت اتصال تغذیه ورودی بر روی برد قرار دارد که حداکثر ولتاژ آن ۱۸ ولت DC است.

شیلد درایور موتور L298 Ardumoto - دیجی اسپارک

 


کد آردوینو Arduino


کدهای زیر را در کامپایلر آردوینو کپی کرده و سپس اجرا کنید. دقت داشته باشید در این کدها از هیچ کتابخانه‌ای استفاده نکرده‌ام. اکثر کاربرها بر این عقیده هستند که راه اندازی درایور موتور بدون استفاده از کتابخانه ممکن نمی‌باشد. ولی در این کدها از روش دیگری استفاده کرده‌ام.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

در جدول زیر مقدار PWM برای کنترل سرعت و حرکت موتورها نوشته شده است.

 

وسایل مورد نیاز

آردوینو Arduino UNO

کیت رباتیک با شیلد Ardumoto آردوینو

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 


پروژه و دریافت بن ارسال رایگان 


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۰ دیدگاه

    • با سلام
      در متن آموزش توضیحات مربوط به درایور نوشته شده است. از جمله بهترین ویژگی آن میتوان به شیلد بودن آن اشاره کرد که در اتصالات بسیار مراحل ساده شده است و سیم کشی کمتری خواهیم داشت. همچنین دو ال ای دی جهت نمایش وضعیت موتورها بر روی شیلد قرار گرفته شده است که کاربردی است.

  • سلام و درود
    آیا از این شیلد برای راه اندازی استپر موتور نما ۱۷ هم میشه استفاده کرد لطفا اگه میشه کدش رو بذارید
    بسیار ممنونم

    • با سلام
      کاربر گرامی جهت انتخاب درایور موتور بایستی ولتاژ و جریان را بررسی و تطابق دهید.
      همچنین امکان ارائه کد در بخش کامنت ها وجود ندارد.

  • سلام خسته نباشید من یک برنامه نوشته اما وقتی کامپایل میکنم ارور نمیده اما موقع اپلود این ارور را میدهد

    Arduino: 1.8.0 (Windows 10), Board: “Arduino/Genuino Uno”

    Sketch uses 3506 bytes (10%) of program storage space. Maximum is 32256 bytes.
    Global variables use 185 bytes (9%) of dynamic memory, leaving 1863 bytes for local variables. Maximum is 2048 bytes.
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
    An error occurred while uploading the sketch

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • با سلام
      در این حالت بر توسط نرم افزار شناسایی نشده است. کابل مورد استفاده و تنظیمات را بررسی کنید.

  • سلام خانم مهندس وقت بخیر

    برای راه اندازی دو استپموتور با برد اردوینو نیاز به مشاوره و راهنمایی داشتم. چطور میتونم مستقیم از شما مشاوره بگیرم؟