آردوینو آموزش آردوینو درایور موتور پروژه های آردوینو

آموزش راه اندازی موتور DC با درایور موتور L298N و برد آردوینو – بخش اول

L298N-arduino-driver-motor-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 

درایور موتور L298N با هیت سینک

درایور موتور L298N از تراشه دوبل L298 یک رگولاتور داخلی ۵ ولت ۷۸M05 تشکلیل شده است. در ساختار این درایور موتور از مدار H Bridge یا همان پل H استفاده شده است. این مدار توانایی درایور و کنترل جریان را دارد که توسط پایه PWM کنترل می‌شود. پایه PWM یا همان مدولاسیون پهنای باند کنترل مدت زمان یک پالس را انجام می‌دهد و در نتیجه ولتاژ خروجی را کنترل خواهد کرد. ولتاژ کاری درایور موتور L298 بین ۵ تا ۳۵ ولت DC است. جریان کاری این درایور بین ۰ تا ۳۶ میلی آمپر متغیر است و هر درایور حداکثر تا ۲ آمپر جریان می‌کشد. بر روی این درایور موتور ۴ پین هدر برای ورودی و اتصال به دو موتور DC قرار گرفته شده است. دو پین هدر دوبل برای فعال سازی پایه سیگنال PWM هر دو موتور قرار دارد. این بورد دارای ۳ ترمینال Terminal برای تغذیه است. تغذیه ۱۲ ولت برای اتصال ولتاژ خروجی مانند باتری، آداپتور و ولتاژ ۵ ولت ورودی برای اتصال به میکروکنترلر و در نهایت تغذیه GND است. بر روی برود ۴ خروجی با نام های OUT1، OUT2، OUT3 و OUT4 برای اتصال موتور DC قرار گرفته شده است.

 

هدف از آموزش L298

در این آموزش توسط ماژول درایور موتور L298N، دو موتور DC را راره اندازی خواهیم کرد. دقت داشته باشید که این درایور موتور نوع ساده و معمولی است. از اینرو انتظار درایو کردن موتورهایی که حساسیت دارند را از آن نداشته باشید. در ادامه به بررسی اتصالات درایور به موتورها و کد برنامه خواهیم پرداخت.

آموزش کار با ماژول درایور موتور L298 و آردوینو - دیجی اسپارک

 

اتصالات مدار به آردوینو

 دو موتور DC انتخاب کنید. همانطور که در تصویر زیر مشخص است، ۴ خروجی برای اتصال موتور DC به درایور L298 قرار گرفته شده است. برای تغذیه خروجی در این آموزش از باتری استفاده شده است. یک سر باتری را به خروجی ۱۲ ولت و سر دیگر آن را به GND اتصال دهید.

 

اتصال موتور DC

  • پایه IN1 ماژول درایور موتور L298 را به پایه ۹ دیجیتال آردوینو Arduino اتصال دهید.
  • پایه IN2 ماژول درایور موتور L298 را به پایه ۸ دیجیتال آردوینو Arduino اتصال دهید.
  • پایه Enable A ماژول درایور موتور L298 را به پایه ۱۰ دیجیتال آردوینو Arduino اتصال دهید.
  • پایه IN3 ماژول درایور موتور L298 را به پایه ۷ دیجیتال آردوینو Arduino اتصال دهید.
  • پایه IN4 ماژول درایور موتور L298 را به پایه ۶ دیجیتال آردوینو Arduino اتصال دهید.
  • پایه Enable B ماژول درایور موتور L298 را به پایه ۵ دیجیتال آردوینو Arduino اتصال دهید.

 

 

اتصال موتور DC به درایور L298

  • یک قطب موتور A را به خروجی OUT1 درایور موتور L298 اتصال دهید.
  • قطب دیگر موتور A را به خروجی OUT2 درایور موتور L298 اتصال دهید.
  • یک قطب موتور B را به خروجی OUT3 درایور موتور L298 اتصال دهید.
  • قطب دیگر موتور B را به خروجی OUT4 درایور موتور L298 اتصال دهید.

اتصالات ماژول درایور موتور L298 با آردوینو - دیجی اسپارک

 

کد آردوینو درایور موتور L298

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر پلاس شوید.

 

 

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

 

تحلیل کد آردوینو Arduino

پایه های خروجی درایور موتور جهت فعال سازی هر دو موتور را فراخوانی می‌کنیم:

 

اتصال پایه ها به میکروکنترلر

روشن شدن موتور A

روشن شدن موتور B

خاموش شدن هر دو موتور

 

کنترل موتور DC با آردوینو و درایور موتور L298 - دیجی اسپارک

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

برد آردوینو Arduino UNO

درایور موتور L298N

موتور DC

کابل فلت نری به نری

 

 

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

 

پروژه

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

 

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

 

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

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

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

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

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

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

۳۶ دیدگاه

  • با سلام و خسته نباشید.
    من با برد آردوینو یه مشکل بزرگی دارم اینکه با روشن شدن برد تا اجرا شدن برنامه همه پایه های I/O آردوینو ۱ میشن و باعث میشه لحظه اول بدون دادن دستور روشن شدن موتور ، موتور چند ثانیه با ماکزیمم دور کار بکنه. چطوری میشه این مشکلو حل کرد؟ ممنون میشم اگه راهنماییم کنید.

  • سلام خسته نباید اتصال باتری به L298 چجوریه میترسم برد بسوزه اشتباه وصل کنم.اگ لب تابو ب برد خالی وصل کنم نمیسوزه؟

    • سلام
      از توجه شما ممنونم.
      دو قطب باتری با مثبت و منفی مشخص شده است که باید به ترتیب به VCC و GND شیلد اتصال دهید.
      برای راحتی کار می‌توانید از یک سرباتری ۹ ولت استفاده کنید و مستقیما به تغذیه برد آردوینو اتصال دهید.

  • با سلام وتشکر از سایت تان و زحماتی که می کشید
    دو عدد موتور دی سی {۶ولت ۶۰دور ۱۲امپر}داریم میخواهیم با جوی استیک هردوموتور کارکنند اما با شرایط زیر :
    با حرکت جوی استیک به سمت راست فقط موتور راست
    با حرکت جوی استیک به سمت چپ فقط موتور چپ
    با حرکت جوی استیک به جلو هر دو موتور به سمت جلو
    با حرکت جوی استیک به عقب هر دوموتور به عقب حرکت کند
    منبع تغذیه باطری شارژی موتور سیکلت ۱۲ ولت ۹ آمپر میباشد.
    اگرلطف کنید مراحل کامل را با سورس کدهاوبا لیست قطعات به ایمیل زیر بفرستد ممنون میشم{چنانچه هزینه ای داشته باشد متقبل میشم}

  • سلام. میشه سرعت موتورهارو با استفاده از سنسور التراسونیک و کم و زیاد شدن فاصله تغییر داد؟ چه تغییری باید در کدنویسی اعمال بشه؟

    • سلام
      بله امکان پذیر است و باید از دستورات شرطی استفاده کنید. به عنوان مثال اگر سنسور فاصله ۳ سانتی متر را تشخیص دادد، خروجی که همان موتور است HHIGH شود. می‌توانید از دستور شرطی if و else استفاده کنید و سپس با دستور digitalwrite خروجی را فعال و غیر فعال کنید.

      • ممنون میشم پروژه ای به این صورت رو انجام بدید. من این کار رو با دو موتور ۱۲ ولت و باتری ۱۲ ولت که به درایور متصل کردم انجام میدم اما موتور ها گشتاور لازم رو برای حرکت ندارن. میخوام هر موتور با یم سنسور التراسونیک مجزا سرعتشون کنترل بشه
        ممنون از آموزش های خوبتون

        • باسلام و تشکر از پیشنهاد شما
          اینطور که بنده متوجه شدم، دو موتور که هر کدام به صورت مجزا با یک سنسور آلتراسونیک کنترل شوند؟ منظورتان از ولتاژ چیست؟

  • سلام ببخشید من یه سوال داشتم به جایه شیلد موتور Dual VNH5019 Pololu چی درایور موتوری میتونم استفاده کنم چون نتونستم از جایی پیدا کنم اگه میدونید لطفا بهم اطلاع بدید خیلی ممنون میشم

  • سلام خسته نباشید…اون باتریه چند ولته؟؟
    مگه ۹ ولت نیست؟؟ ولی برای تغذیه این درایور به ۱۲ ولت نیاز داریم…اگه میشه یکم در مورد قسمت تغذیه این درایور هم توضیح بدید.
    ینی هم پنج ولت میخواد هم ۱۲ یا یکیش فقط کافیه؟؟ چجوریه؟؟
    ممنون ازتون

    • سلام
      بله باتری مورد استفاده من ۹ ولت است و برای راه اندازی دو موتور گیربکس کافی است ولی باز هم برای استفاده مداوم و سریعتر پیشنهاد میکنم از پاور ۱۲ ولت استفاده کنید.
      در دیتاشیت L298 کاملا توضیح داده شده است، ولتاژ کاری درایور موتور L298 بین ۵ تا ۳۵ ولت DC است و اگر تغذیه ای که استفاده می‌کنید بیشتر از ۱۲ ولت DC است باید جامپر بالای ترمینال ۱۲ ولت را از درایور جدا کنید.

  • با سلام و خسته نباشید.
    من دانشجو ی رباتیک هستم و در رابطه با چند مورد سوال دارم
    میشه لطفا ایمیلتان را داشته باشم؟
    با تشکر

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

    • سلام
      از توجه و ارسال پروژه جذاب شما ممنونم.
      بن تخفیف ارسال رایگان پیشتاز از طریق ایمیل برای شما ارسال خواهد شد. پس از استفاده از آن، از همین طریق اعلام کنید.

        • سلام
          کد تخفیف بر روی ایمیل شما ارسال گردید. لطفا پس از استفاده از کد، از همین طریق اطلاع رسانی کنید.

            • سلام
              کاربر گرامی، از اینکه نظر و تجربه خود را با دیگر کاربران به اشتراک می‌گذارید، صمیمانه سپاسگزارم.

  • سلام
    ببخشید دور موتور رو تا چقدر میشه کنترل کرد مثلا بشه حالا با استفاده از چرخدنده تا حرکات خیلی کوچیک در حد میلیمتر هم درآورد؟