شاید شما تنها میخواهید راه اندازی استپر موتور با درایور موتور L293D را یاد بگیرید و به همین دلیل است که اینجا هستید. اما شاید بد نباشد بدانید که استفاده از این آی سی یکی از کم هزینهترین و آسانترین روشها برای راه اندازی این موتور است.
درایور موتور L293D یکی از کاربردیترین آی سیها برای کنترل سرعت و جهت هر نوع استپر موتور تک قطبی مانند 28BYJ-48 و هر استپر موتور دو قطبی مانند NEMA17 است.
اگر میخواهید با آی سی L293D بیشتر آشنا شوید، حتما نگاهی به مقاله زیر بیاندازید.
راه اندازی موتور DC با درایور موتور L293D و آردوینو
اما در ادامه همراه ما باشید تا راه اندازی دو استپر موتور را با آی سی درایور موتور L293D به شما آموزش دهیم.
کنترل موتور پله ای با مدار پل H
آی سی L293D دارای دو پل H است که هر پل H ، یکی از سیم پیچهای موتور پله ای را راه اندازی میکند. با تغذیه این سیمپیچها با ترتیبی خاص، شافت موتور میتواند با پلههای کوچک، به جلو و عقب حرکت کند. با این حال، سرعت موتور به اینکه این سیمپیچها هر چند وقت یک بار تغذیه میشوند، بستگی دارد.
در شکل زیر میتوانید راه اندازی یک استپر موتور با پل H را مشاهده کنید:
راه اندازی موتور پله ای تک قطبی (28BYJ-48)
برای اولین پروژه، بیایید از موتور پله ای تک قطبی 28BYJ-48 با ولتاژ نامی 5V استفاده کنیم. این موتور 48 پله را در یک دور طی میکند. البته شما میتوانید از هر نوع استپر موتور تک قطبی دیگری نیز استفاده کنید.
قطعات لازم برای این پروژه:
- استپر موتور 28BYJ-48-5V
- مینی برد بورد 400 سوراخ
- ماژول آردوینو UNO
- سیم برد بوردی 65 تایی
- کابل نری USB
- آداپتور 5 ولت 1 آمپر
قبل از اتصال موتور خود به آی سی، لازم است سیمهای B, +B, -A , +A- آن را مشخص کنید. بهترین راه برای انجام این کار استفاده از دیتاشیت موتور است. سیمهای موتوری که ما در اینجا انتخاب کردیم، به ترتیب زرد، آبی، صورتی و نارنجی است.
نکته:
به این نکته دقت داشته باشید که در اینجا از اتصال وسط مشترک یعنی سیم قرمز استفاده نمیشود. این سیم تنها برای تغذیه یکی از سیم پیچهای راست یا چپ مورد استفاده قرار میگیرد و میتواند بدون استفاده از مدار، بر روی جهت جریان اثر گذاشته و جهت آن را معکوس کند.
برای اتصالات، اول از همه خروجی 5 ولت آردوینو را به پایههای VCC2 و VCC1 و همه زمینها را به یکدیگر وصل کنید. علاوه بر این، لازم است پایههای ENA و ENB را هر دو به 5 ولت وصل نمایید تا موتور همیشه فعال باشد.
حالا پایههای ورودی (IN4, IN3, IN2 ,IN1) آی سی L293D را به چهار پایهی خروجی دیجیتال آردوینو (12, 11, 10 ,9) متصل کنید.
در نهایت، سیمهای A+ (نارنجی) , A- (صورتی), B+ (آبی), B- (زرد) را مطابق تصویر زیر به پایههای خروجی L293D یعنی (Out2, Out1, Out3, Out4) متصل کنید.
راه اندازی استپر موتور دوقطبی (NEMA 17)
در پروژه دوم، برای راه اندازی استپر موتور با آی سی درایور موتور L293D ، میخواهیم از یک موتور پله ای دو قطبی NEMA 17 با ولتاژ نامی 12 ولت استفاده کنیم. این موتور، در یک دور، 200 پله طی میکند و میتواند در یک دقیقه 60 دور بزند.
علاوه برای قطعات ذکر شده در مثال قبلی، برای آغاز این پروژه به قطعات زیر هم نیاز خواهید داشت:
در این پروژه همانند پروژه قبلی لازم است که پیش از هر چیزی، سیمهای B ،-A ،+A+ و B- موتور را مشخص نمایید و برای این کار، دوباره از دیتاشیت موتور مورد نظرتان استفاده کنید. همانطور که در تصویر زیر مشاهده میکنید، سیمهای این موتور به ترتیب سبز، قرمز، آبی و زرد است:
و اما اتصالات این موتور…
برای تغذیه این موتور، از یک تغذیه 12 ولت خارجی و برای تغذیه آی سی، از خروجی 5 ولت آردوینو استفاده کنید. بنابراین، پایه VCC2 آی سی را که مربوط به تغذیه موتور است، به 12 ولت و پایه VCC1 آن را به 5 ولت متصل کنید. حتما مطمئن شوید که همه زمینها به هم متصلاند.
پس از آن، لازم است که هر دو پایهی ENA و ENB را به خروجی 5 ولت آردوینو وصل نمایید. به این شکل موتور همیشه فعال خواهد بود.
اکنون پایههای ورودی (IN4, IN3, IN2 ,IN1) آی سی L293D را به چهار پایهی خروجی دیجیتال آردوینو (12, 11, 10,9) متصل کنید.
در آخرین مرحله اتصالات هم، سیمهای A+ (قرمز), A-(سبز) , B+(آبی), B-(زرد) موتور را به پایههای خروجی L293D (Out1, Out2, Out3, Out4) وصل کنید. این کار را میتوانید با کمک تصویر زیر انجام دهید:
کد آردوینو – کنترل استپر موتور
دستورات زیر شما را با نحوه کنترل استپر موتور تک قطبی یا دو قطبی با استفاده از آی سی درایور موتور L293D به خوبی آشنا میکند.
این دستورات به جز پارامتر stepsPerRevolution برای راه اندازی دو موتور یکسان هستند. اما پیش از اینکه این دستورات را بر روی آردوینو آپلود کنید، پارامتر stepsPerRevolution را با توجه به مشخصات موتوری که استفاده میکنید، مقداردهی کنید. به عنوان مثال، برای موتور NEMA 17، این پارامتر برابر 200 و برای موتور 28BYJ-48 برابر با 48 است.
// Include the Arduino Stepper Library
#include <Stepper.h>
// Number of steps per output rotation
const int stepsPerRevolution = 200;
// Create Instance of Stepper library
Stepper myStepper(stepsPerRevolution, 12, 11, 10, 9);
void setup()
{
// set the speed at 20 rpm:
myStepper.setSpeed(20);
// initialize the serial port:
Serial.begin(9600);
}
void loop()
{
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
این دستورات با اضافه کردن کتابخانه Stepper شروع میشود. این کتابخانه در نرمافزار آردوینو وجود دارد و توالی پالسهایی را که به موتور ارسال میشود، مدیریت میکند.
// Include the Arduino Stepper Library
#include <Stepper.h>
پس از اضافه شدن کتابخانه، متغیری بهنام stepsPerRevolution تعریف میشود. همانطور که از نام آن پیدا است، تعداد پلههای موتور در یک دور با این پارامتر تعیین میشود. این پارامتر را باید با توجه به مشخصات موتور خود تغییر دهید. به عنوان مثال، برای موتور NEMA 17، این پارامتر برابر با 200 و برای موتور 28BYJ-48 برابر با 48 قرار داده میشود.
// Number of steps per output rotation
const int stepsPerRevolution = 200;
در خط بعدی، یک شی از کتابخانه stepper ایجاد میکنیم. تعداد پلههای موتور در یک دور و پایههای آردوینو که آی سی به آن متصل است، پارامترهای ورودی این شی میباشد.
// Create Instance of Stepper library
Stepper myStepper(stepsPerRevolution, 12, 11, 10, 9);
در بخش setup، با فراخوانی تابع ()setSpeed، سرعت موتور را تنظیم نموده و ارتباط سریال را مقداردهی اولیه میکنیم.
void setup()
{
// set the speed at 20 rpm:
myStepper.setSpeed(20);
// initialize the serial port:
Serial.begin(9600);
}
در بخش loop، تابع ()step را فراخوانی میکنیم. این تابع باعث میشود که موتور، تعداد مشخصی پله را با سرعتی که تابع ()setSpeed تعیین کرده است، طی کند. اگر عددی منفی را به این تابع دهیم، موتور در جهت معکوس خواهد چرخید.
void loop()
{
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
خلاصه
در این مطلب با استفاده از دو استپر موتور تک قطبی و دو قطبی، سعی کردیم به طور کلی به دو شکل، راه اندازی استپر موتور را با استفاده از آی سی درایور موتور L293D به شما عزیزان آموزش دهیم. همانطور که دیدید اتصالات و راه اندازی این موتور چندان دشوار نیست، کافی است از دیتاشیت موتور مورد نظر خود استفاده کنید و به دقت نکات بالا را انجام دهید تا بتوانید نتیجه مطلوبی دریافت کنید.
در ضمن، اگر سوال یا پیشنهادی داشتید، حتما با ما مطرح کنید.