آردوینو, پروژه آردوینو

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

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

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

فهرست مطالب

لوازم مورد نیاز برای پروژه راه اندازی استپر موتور با درایور L293D و آردوینو

راه اندازی استپر موتور با درایور L293D و آردوینو با H-Bridge

از آن جایی که آی‌سی L293D دو H-Bridge دارد، هر کدام از آنها یک عدد از سیم‌پیچ‌های الکترومغناطیسی استپر موتورها را درایو خواهند کرد.

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

با این حال، سرعت موتور را می‌توان با تغییر روش وارد کردن نیرو به این سیم‌پیچ‌ها تعیین کرد.

در ادامه تصویری از راه اندازی استپر موتور با درایور L293D و H-Bridge می‌بینید.

راه اندازی استپر موتور با درایور L293D و H-Bridge
راه‌اندازی استپر موتور با درایور L293D و H-Bridge

راه اندازی استپر موتور 28BYJ-48 با درایور L293D و آردوینو

در نخستین آزمایش، می‌خواهیم از استپر موتور تک‌قطبی 28BYJ-48 که با ولتاژ 5 ولت کار می‌کند، استفاده کنیم. این موتور قادرست تا در هر استپ، 48 بار حرکت کند.

قبل از اینکه موتور را به آی‌سی L293D وصل کنیم، باید سیم‌های A+، A-، B+ و B- که می‌خواهیم روی موتور به کار ببریم را مشخص نماییم. بهترین روش برای انجام این کار، استفاده از دیتاشیت موتور است. روش دیگر نیز راهنمایی گرفتن از تصویر زیر می‌باشد.

پین‌های استپر موتور تک‌قطبی 28BYJ48
پین‌های استپر موتور تک‌قطبی 28BYJ48

نکته: در این آزمایش از اتصال میانی (رنگ قرمز استفاده نمی‌کنیم) زیرا این اتصال معمولاً زمانی به کار می‌رود که می‌خواهیم به سمت چپ یا راست سیم‌پیچ انرژی وارد کنیم و بدون استفاده از مدار، تأثیر معکوس شدن جریان را مشاهده نماییم.

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

سیم‌پیچ مدار این پروژه بسیار ساده است. شما می‌توانید برای این مرحله، کار خود را با وصل کردن پین خروجی و 5 ولتی آردوینو به پین‌های Vcc2 و Vcc1 موتور شروع کنید.

به علاوه، باید پین‌های ENA و ENB را به پین خروجی 5 ولت وصل کنید تا موتور همیشه فعال باشد.

حالا سراغ وصل کردن پین‌های ورودی IN1، IN2، IN3 و IN4 آی‌سی L293D به پین‌های دیجیتالی 12، 11، 10 و 9 آردوینو می‌رویم.

در نهایت سیم‌های A+ (نارنجی)، A- (صورتی) و B+ (آبی) استپر موتور را مطابق تصویر زیر به پین‌های خروجی آردوینو یعنی Out4، Out3، Out2 و Out1 می‌زنیم.

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

راه اندازی استپر موتور NEMA 17 با درایور L293D و آردوینو

در دیگر آزمایش پروژه راه اندازی استپر موتور با درایور L293D و آردوینو، از NEMA 17 دو قطبی که با ولتاژ 12 ولت کار می‌کند، استفاده می‌کنیم. این استپر موتور در هر مرحله، 200 استپ خواهد داشت و تعداد دورهای آن در هر دقیقه نیز به 60 عدد می‌رسد.

قبل از اینکه موتور را به آی‌سی L293D وصل کنیم، باید سیم‌های A+، A-، B+ و B- که می‌خواهیم روی موتور به کار ببریم را مشخص نماییم. بهترین روش برای انجام این کار، استفاده از دیتاشیت موتور است. روش دیگر نیز راهنمایی گرفتن از تصویر زیر می‌باشد.

پین‌های استپر موتور دوقطبی NEMA17
پین‌های استپر موتور دوقطبی NEMA17

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

اتصالات بسیار ساده‌اند. شما می‌توانید کار خود را با وصل کردن پین‌های ENA و ENB به پین خروجی 5 ولت آغاز کنید تا موتور همیشه فعال باقی بماند.

اینک پین‌های ورودی IN1، IN2، IN3 و IN4 آی‌سی را به پین‌های دیجیتالی آردوینو یعنی 12، 11، 10 و 9 وصل کنید.

در نهایت سیم‌های A+ (قرمز)، A- (سبز)، B+ (آبی) و B- (زرد) استپر موتور را مطابق تصویر زیر به پین‌های خروجی موتور یعنی Out4، Out3، Out2 و Out1 بزنید.

شماتیک مدار پروژه راه‌اندازی استپر موتور NEMA17 با درایور L293D و آردوینو
شماتیک مدار پروژه راه‌اندازی استپر موتور NEMA17 با درایور L293D و آردوینو

کدنویسی پروژه راه اندازی استپر موتور با درایور L293D و آردوینو

کدهایی که در ادامه می‌بینید، به طور تمام و کمال نشان خواهند داد که چگونه می‌توانیم یک موتور تک‌قطبی یا دو قطبی را با آی‌سی L293D کنترل کنیم. این کدها برای هر دو نوع موتورها یکسان هستند بجز پارامتر 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);
}
				
			

توضیحات کدهای پروژه راه اندازی استپر موتور با درایور L293D و آردوینو

در ابتدای کدها، کتابخانه Stepper آردوینو وجود دارد. این کتابخانه همزمان با نرم‌افزار Arduino IDE در دسترس قرار خواهد داشت و مسئول نوبت‌دهی به پالس‌هایی می‌باشد که به موتورها ارسال خواهیم کرد.

				
					// 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;
				
			

در مرحله بعد، یک مثال برای کتابخانه استپر می‌سازیم. این کتابخانه استپ‌های موتورها و اتصالات پین‌های آردوینو را برای هر مرحله مشخص می‌کند.

				
					// 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);
}
				
			

1 دیدگاه در “آموزش کامل راه اندازی استپر موتور با درایور L293D و آردوینو

  1. Zeynabch گفت:

    سلام خواستم بدونم در این مدار نیاز به منبع تغذیه نیست؟

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *