آردوینو Arduino Uno درایور موتور پروژه های آردوینو

آموزش راه اندازی استپر موتور Stepper با آردوینو UNO و ماژول A3967

آموزش راه اندازس استپر موتور با آردوینو UNO و ماژول A3967 - دیجی اسپارک
نوشته شده توسط اروند طباطبایی

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

 

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

۱- ماژول درایور موتور A3967

۲- استپر موتور

۳- برد بُرد

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

۵- پین هدر نری صاف

۶- ماژول آردوینو UNO

۷- تجهیزات لحیم کاری

۸- منبع تغذیه ۱۲ ولت

 

استپر موتور چگونه کار می‌کند؟

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

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

 

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

 

راه انداری استپر موتور Stepper Motor

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

 

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

آموزش راه اندازس استپر موتور با آردوینو UNO و ماژول A3967 – دیجی اسپارک

 

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

زمانی که تمام پین هدرها را لحیم کردید، با توجه به شکل زیر پایه‌های ماژول درایور موتور A3967 را به آردوینو Arduino UNO ارتباط دهید. توجه داشته باشید که استپر موتور کوچک با عکس بالا متفاوت است و در انتهای خود چهار پین اتصال دارد. این ۴ پین به پینهای میل هدر، روبه بالا وصل می‌شود. به خاطر ویژگی خاص این استپر شما می‌توانید اتصال پین‌ها را به هر صورتی انجام دهید، پایه سیاه سمت چپ باشد یا پایه زرد فرقی نمی‌کند، موتو ر به هر حال کار خواهد کرد. اگر از موتور دیگری استفاه می‌کنید از راهنمای آن برای چگونگی اتصال سیم‌ها کمک بگیرید. استپر موتور، تغذیه‌ای فراتر از آنچه آردوینو Arduino فراهم می‌کند نیاز دارد بنابراین در این مثال، از یک منبع تغذیه خارجی ۱۲ ولت برای تغذیه به برد آردوینو Arduino Uno استفاده می‌کنیم. توجه داشته باشید که ورودی تغذیه M+ بر روی برد ماژول درایور موتور A3967 به پین vin آردوینو Arduino متصل شده است. این کار به شما اجازه می‌دهد که هر دو را فقط با یک منبع تغذیه، تامین کنید.

 

کدنویسی آردوینو استپر موتور Stepper

زمانی که همه چیز را به درستی سوار کردید شما می‌توانید سخت افزار را به آردوینو Arduino متصل کنید. در زیر کد ساده‌ای نوشته شده که شما را کمی با روند کار آشنا کند. کمی با این کدها کار کرده، مقادیر آن‌ها را تغییر دهید و آزادانه به کاوش در آن بپردازید.

 

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

 

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

 

فراتر گام بردارید

حال که شما آموختید چگونه یک استپر موتور را در سطح ساده راه اندازی کنید، زمان آن رسیده که به مرحله بعدی رفته و اطلاعات بیشتری را در مورد استپرها و درایو کردن آنها بیاموزید. یکی از بهترین مکان ها هم علاوه بر سایت دانشجو کیت می توانید به سایت رسمی EasyDriver website. بروید و با انبوهی از مقالات آموزشی روبرو شوید. شما می توانید این برد را از سایت دانشجو کیت تهیه کنید.

 

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

 

پروژه:

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

 

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

 

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

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

۳۴ دیدگاه

  • درود بر شما
    در حلقه های for متغیر i با lt اند شده اند…. میشه در مورد این lt توضیح بدید…
    آخه تو هیچ کجای برنامه متغیر lt تعریف نشده است….؟؟؟

  • با عرض سلام
    اگر تعداد استپر موتور ها بیشتر شود (cnc)باید در دستورات چه تغییری ایجاد کنیم ؟؟
    پروژه من cncاست.

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

    • با سلام
      ضمن تشکر از توجه شما بله میتوانید با درایورهای راه انداز این کار را انجام دهید.

  • سلام و درود. مهندس من استپر موتور هام امپر و ولتاژ شیش هست برای سی ان سی چجوری میتونم امپر و ولتاژ درایور را اضافه کنم ایا اصلا جواب میده درایور این ولتاژ را یا باید تعییر بدم. منون

    • سلام
      ضمن تشکر از توجه شما، طبق اطلاعات موجود در دیتاشیت این درایور تا ۳۰ ولت را میتواند تغذیه کند. از این رو کافیست ولتاژ ورودی به درایور را افزایش دهید.

  • سلام. با سپاس از آموزش خوبتون.
    در این آموزش از استپر ۴ سیم استفاده کردید، نحوه استفاده از استپر ۵ سیم رو هم میفرمایید؟
    سپاس

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

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

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

      • ممنون از پاسخ شما.. و وقتی که گذاشتین..

        می تونم از Magnetic Rotary Encoder مثل AS5048A برای چرخش استفاده کنم ؟

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

  • با عرض معذرت اگه سوالم خارج از این موضوع (ماژول این آموزش ) هست.
    من از شیلد موتور درایو L293D استفاده میکنم ، که قابلیت ۴ موتور دی سی یا دو استپ موتور رو داره.
    اگه بخواهیم تمام خروجی ها رو به موتور های مربوطه وصل کنیم آدرس دهی موتور ها تو برنامه آردینو به چه صورت داده میشه؟ بویژه در مورد آدرس دهی (انتخاب )استپ موتورها ؟
    ممنون

    • با سلام
      از آنجایی که این آموزش مرتبط با کالای درخواستی شما نمی‌باشد. برای این منظور باید به دیتاشیت همان شیلد مراجعه کنید. دستورات برای مدیریت موتورهای ذکر شده است.

  • سلام
    خیلی از آموزش های خوبتان تشکر میکنم
    بسیار کاربردی و دقیق
    فقط در این آموزش میخواستم بپرسم آیا مهمه که باتری ۱۲ ولتمون چند آمپر باشه ؟؟؟

  • سلام خسته نباشید ممنون از زحماتتون
    من از شیلد سی ان سی ورژن ۳ استفاده کردم ( آردینو uno و درایور A4988 ) از کتابخانه خود آردوینو استفاده کردم ولی استپ موتور ( ۴ سیمه) تقه میزنه و کار نمیکنه (اتصالات درسته) . کتابخونه ی grbl رو لود کردم وبا grbl contoller هم دوباره صدای نبض میده. میشه بفرمایید مشکل از کجاست؟

  • سلام خسته نباشید.
    لطفا راهنمایی بفرمایید،وقتی در grbl جهت x , جهت y هر دو به یک استپر موتور دستور میدن مشکل از کجاست؟از شیلد سی ان سی استفاده میکنم

    • با سلام
      در این خصوص بنده تست نکرده ام. لذا از دیگر کاربرانی که در این زمینه اطلاعات دارند، تقاضا میکنم در بحث شرکت کنند.

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

  • سلام من مهدیار اسماعیلی هستم و ده سالمه یک پروژه ی ربات بازو رو داشتم که به استپر موتور نیاز داشت می شه اموزش راه اندازی استپر موتور با زبان پایتون رو هم توی دیجی اسپارک بگذارید ممنون

  • سلام برای ساخت نویسنده ۲ بعدی کوچک با سی دی رام، برای راه اندازی استپر موتور های سی دی رام به چه درایوری و چندتا نیازه؟

    • با سلام
      این مورد توسط بنده تست نشده است. انتخاب درایور موتور به ولتاژ و جریان موتور وابسته است.

  • سلام ببخشید من یه موتور ۳۸rpmمیخوام از چه نوع موتوری باید استفاده کنم ؟ ممنون