راه اندزی استپر موتور با درایور L293
قطعات مورد نیاز برای راه اندازی استپر موتور با درایور L298
1- آردوینو نانو
2-شیلد آدوینو نانو
3- استپر موتور
4-درایور L298
5-پتانسیومتر(ولووم) 20k
6- منبع تغذیه 12 ولت
7- کابل و جامپر
توضیح کلی راه اندازی استپر موتور با درایور L298
در اکثر موارد ما از درایور A4988 یا درایورهای مربوط به خود استپر موتور استفاده میکنیم اما در این مقاله قصد داریم راه اندازی استپر موتور با درایور L298 را آموزش دهیم.
برای درک بهتر این مطالب میتوانید به مقاله های طرز کار استپر موتور مراجعه کنید.
ابتدا سیم های کویل ها (coil) را جدا میکنیم یعنی سیم های کویل A (دو سیم) را در یک سمت و کویل B (دوسیم) را در سمت دیگر میگیریم. اگر به درایور L298 دقت کنید در یک سمت output1 و در سمت دیگر Output2 را مشاهده میکنید. در OUtput1 خروجی های 1 و 2 و در output2 خروجی های 3 و 4 را مشاهده میکنید. سیم های کویل A را به 1 و 2 , و کویل B را به 3 و 4 متصل کنید توجه کنید که اگر سیم ها را اشتباه متصل کنید استپر موتور کار نخواهد کرد.پس پیشنهاد میکنیم قبل از انجام پروژه مقاله ی استپر موتور چیست را مطالعه کنید.
توجه کنید که استپر موتور به ولتاژ 12 برای کار کردن نیاز دارد پس باید درایور L298 را به منبع تغذیه 12 ولت از طریق پین 12v متصل کنیم همچنین سیم زمین درایور را به سیم منفی منبع تغذیه متصل میکنیم. از طرفی آردوینو برای کار کردن به ولتاژ 5v نیاز دارد پس پین 5ولت آردوینو را به پین 5 ولت درایور و سیم زمین آردوینو را به زمین درایور متصل میکنیم.
استپر موتور
در تصویر زیر کویل ها را مشاهده میکنید…
برای درک بهتر ویدیوی زیر را مشاهده کنید توجه داشته باشید که رنگ سیم های استپر موتورها با یکدیگر متفاوت هستند:
در ویدیوی زیر سیم مشکی A1 سیم زرد A2 سیم سفید B1 و سیم آبی B2 است
کدهای راه اندازی استپر موتور با درایور L298:
#include<Stepper.h> //کتابخانه ی استپر موتور را فرامیخوانیم #define STEPS 100 //تعداد گام ها را با توجه به استپر موتور خود وازد کنید Stepper stepper(STEPS, 8,9,10,11); //یک عنوان در کلاس استپ موتور مشخص میکنیم و تعداد گام های استپر موتور و همچنین پین های آن را مشخص میکنیم int pervious = 0; //آخرین دیتایی است که از سیگنال آنالوگ خوانده شده void setup() { stepper.setSpeed(30); //سرعت استپر موتور را 30 دور در دقیقه تنظیم میکنیم } void loop() { int val=analogRead(0); //مقدار سیگنال آنالوگ پین شماره ی صفر را بخوان stepper.step(val - pervious); //تعداد گام ها را با توجه به مقدار تغییرات سیگنال آنالوگ تغییر بده pervious = val ; //آخرین مقدار سنسور را آپدیت کن }