آموزش راه اندازی استپر موتور 28BYJ48 با آردوینو

0
147
آموزش راه اندازی استپر موتور 28BYJ48 با آردوینو

در این آموزش، به استپر موتور ۲۸BYJ48 و چگونگی راه اندازی آن با آردوینو از طریق ماژول استپر موتور ULN2003 می‌پردازیم.

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

استپر موتورها:

بیایید نگاهی به استپر موتور ۲۸BYJ48 بیندازیم.

استپر موتور 28BYJ48

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

چهار سیم‌پیچ استپر موتور 28BYJ48 که پنج سیم به رنگ‌های آبی، صورتی، زرد، نارنجی و قرمز از آن خارج شده است.

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

اما واقعا چرا این موتور، ۲۸BYJ48 نامیده شده است؟ هیچ دلیل فنی برای نامیدن موتور به این اسم وجود ندارد! بهتر است بیش از این درگیر این موضوع نشویم. پس بیایید به برخی از اطلاعات فنی مهم این موتور که از دیتاشیت آن استخراج شده نگاهی بیندازیم:

جدول برخی از مشخصات فنی استپر موتور
جدول مشخصات فنی استپر موتور

اطلاعات بسیاری در این جدول وجود دارد، اما چند مورد مهم آن را بررسی می‌کنیم تا بفهمیم از چه نوع استپر موتوری استفاده می‌کنیم تا به نحو کارآمدی آن را راه‌اندازی کنیم. اول از همه، می‌دانیم که استپر موتور ۲۸BYJ48 ما ۵ ولتی است. بنابراین، به سیم قرمز، ولتاژ ۵ ولت اعمال می‌کنیم. سپس، این را هم می‌دانیم که موتور ۴ فازه است و ۴ سیم‌پیچ دارد. حال، نسبت چرخ‌دنده‌ها ۱:۶۴ داده شده است. این یعنی شافتی که در خروجی دیده می‌شود، تنها زمانی یک دور می‌زند که موتور داخل ۶۴ دور بزند (۳۶۰=۵٫۶۲۵*۶۴). این به خاطر چرخ‌دنده‌هایی است که بین موتور و شافت خروجی قرار دارند و به افزایش گشتاور کمک می‌کنند.

محاسبه تعداد گام بر دور استپر موتور ۲۸BYJ48

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

                   گام بر دور = زاویه گام/۳۶۰     
        ۳۲=۳۶۰/۱۱٫۲۵

بنابراین، طبق فرمول بالا، ۳۲ گام برای یک دور کامل نیاز است.
طبیعتا در مد نیم پله زاویه گام ۵٫۶۲۵/۶۴ درجه است. به این معنا که به ازای هر نیم پله، ۵٫۶۲۵ درجه حرکت می‌کند. بنابراین، ۶۴ نیم پله نیاز است تا یک دور چرخش کامل شود.

چرا به ماژول‌های درایور استپر موتور نیاز داریم؟

بیشتر انواع مختلف استپر موتورها تنها با کمک یک ماژول درایور کار می‌کنند. به این خاطر که ماژول کنترلر (که در اینجا آردوینو است)، امکان جریان‌دهی کافی به موتور را از طریق پایه‌های ورودی و خروجی خود ندارد. بنابراین، باید از یک ماژول خارجی مانند ماژول ULN2003 به عنوان درایور استپر موتور استفاده کرد. انواع مختلفی از ماژول‌های درایور موجود است که مشخصات آن‌ها بسته به نوع موتور استفاده شده متفاوت است. اصول کلی حاکم بر ماژول‌های درایور این است که بتوانند به اندازه کافی برای کارکرد موتور، جریان دهی داشته باشند. در بخش بعدی، راه اندازی استپر موتور ۲۸BYJ48 با آردوینو را انجام می‌دهیم.  

مدار کنترل موقعیت استپر موتور با آردوینو و توضیحات آن:

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

مدار پروژه کنترل استپر موتور با آردوینو را می‌توانید در تصویر بالا مشاهده کنید. در اینجا از استپر موتور ۲۸BYJ48 و ماژول درایور ULN2003 استفاده کرده‌ایم. برای برق‌دار کردن چهار سیم‌پیچ استپر موتور از پایه‌های دیجیتال ۸,۹,۱۰و۱۱ استفاده کرده‌ایم. ماژول درایور با پایه ۵ ولت برد آردوینو تغذیه شده است.

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

کد برد آردوینو:

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

گامپایه فعالسیم‌پیچ فعال
گام ۱۸ و ۹A و B
گام ۲۹ و ۱۰B و C
گام ۳۱۰ و ۱۱C و D
گام ۴۱۱ و ۸D و A

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

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

تعداد گام‌ بر دور موتورمان را ۳۲ به دست آوردیم، بنابراین، آن را به صورت زیر وارد می‌کنیم:

#define STEPS 32

سپس باید شی‌هایی ایجاد کنیم که پایه‌های متصل به استپر موتور را در آن‌ها مشخص کنیم.

Stepper stepper (STEPS, 8, 10, 9, 11);

نکته: شماره پایه‌ها به عمد به صورت نامنظم ۸، ۱۰، ۹، ۱۱ وارد شده است. شما هم باید از همین الگو پیروی کنید، حتی اگر پایه‌های متصل شده به موتور را تغییر داده باشید. به دلیل اینکه ما از کتابخانه stepper آردوینو استفاده می‌کنیم، می‌توانیم سرعت موتور را با خط زیر تنظیم کنیم. در استپر موتور ۲۸BYJ48 سرعت می‌تواند در بازه ۰ تا ۲۰۰ تغییر کند.

stepper.setSpeed(200);

حال برای اینکه استپر موتور یک گام حرکت کند می‌توانیم از خط زیر استفاده کنیم:

stepper.step(val);

تعداد گام‌های حرکت، توسط متغیر val قابل تنظیم است. از آنجا که ۳۲ گام داریم و نسبت چرخ‌دنده‌ها ۶۴ است، باید ۲۰۴۸ گام طی شود تا یک دور کامل زده شود (۲۰۴۸=۳۲*۶۴).

کاربر می‌تواند مقدار متغیر val را از طریق سریال مانیتور وارد کند.

نحوه عمکلرد استپر موتور ۲۸BYJ48 با آردوینو

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

نتیجه سیم‌کشی موتور پله‌ای به آردوینو

حال، برنامه زیر را در آردوینو UNO خود بارگذاری کنید و سریال مانیتور را باز کنید. همان‌طور که قبلا گفتیم، برای یک دور چرخش باید ۲۰۴۸ گام طی کنیم، پس  زمانی‌که ۲۰۴۸ را وارد کنیم، موتور یک دور در جهت عقربه‌های ساعت می‌زند و ۲۰۴۸ گام طی می‌کند. برای چرخش در خلاف جهت عقربه‌های ساعت کافی است عدد را با علامت – وارد کنیم. پس وارد کردن ۱۰۲۴- باعث می‌شود موتور نیم دور در خلاف جهت عقربه‌های ساعت بچرخد. شما می‌توانید هر عددی را وارد کنید. برای مثال با وارد کردن ۱، موتور فقط یک گام حرکت می‌کند.

کد راه اندازی استپر موتور ۲۸BYJ48:

// Arduino stepper motor control code

#include <Stepper.h> // Include the header file

// change this to the number of steps on your motor
#define STEPS 32

// create an instance of the stepper class using the steps and pins
Stepper stepper(STEPS, 8, 10, 9, 11);

int val = 0;

void setup() {
  Serial.begin(9600);
  stepper.setSpeed(200);
}

void loop() {

  if (Serial.available()>0)
  {
    val = Serial.parseInt();
    stepper.step(val);
    Serial.println(val); //for debugging
  }
 

}

امیدواریم به خوبی با راه اندازی استپر موتور ۲۸BYJ48 با آردوینو آشنا شده باشید و از انجام آن لذت برده باشید. اگر حین کار به سوالی برخوردید می‌توانید در بخش دیدگاه‌ها مطرح کنید.

ارسال یک پاسخ

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید