استپر موتور، به دلیل طراحی منحصر به فرد خود، می تواند با دقت درجه زیادی و بدون هرگونه مکانیسم بازخورد کنترل شود. شفت یک استپر موتور که با یک سری آهنربا سوار شده ، توسط یک سری از سیم پیچ های الکترومغناطیسی که بار مثبت و منفی طی ترتیب خاصی شارژ شده اند؛ کنترل می شود.
که باعث حرکت دقیق آن به جلو یا عقب در"پله ها" کوچک می شود.
دو نوع استپر موتور وجود دارد. تک قطبی و دوقطبی ، و این خیلی مهم است که بدانید با کدام نوع در حال کار هستید. برای اطلاع بیشتر درباره تفاوت دو مدل و درباره کارکرد مدارهایی که باید برای کنترل یک استپر ساخته شود. لطفا به استپر موتورهای صفحه ی Tom lgo نگاه بیاندازید.
در این مثال از چرخاندن یک پتانسیومتر (یا سنسورهای دیگر) روی ورودی آنالوگ 0 برای کنترل حرکت یک استپر موتور با استفاده از کتابخانه استپر موتور
استفاده شده است. استپر تک قطبی یا دو قطبی با استفاده از پین های دیجیتال 8 ، 9 ، 10 و 11 در اتصال با یک دارلینگتون U2004 Array (برای استپرهای تک قطبی) یا یک SN75441NE H-Brige (برای دوقطبی) کنترل می شود.
سخت افزار موردنیاز
برد آردینو
پتانسیومتر
استپر موتور
مدار
در زیر شما می توانید مدار برای هر دو استپر تک قطبی و دو قطبی بیابید. در هر مورد ، بهتر است که از تغذیه استپر موتور خود را از منبع خارجی تامین کنید؛ همانطور که آنها کشیده اند به طور مستقیم از برد آردینو بیش از حد تغذیه شده است. در هر دو مدار، یک پتانسیومتر 10k را به تغذیه و زمین متصل کنید. با آن ،خروجی را برای پین آنالوگ 0 جاروب کنید.
توجه: هر دو مدار زیر با چهار سیم پیکربندی شده است. دو سیم پیکربندی شده با کد ارائه شده کار نخواهند کرد.
مدار تک قطبی
شماتیک استپر تک قطبی
مدار استپر دوقطبی
شماتیک استپر دوقطبی
کد:
#include <Stepper.h>
// برای شماره مراحل موتور خود این را تغییر دهید
#define STEPS 100
// ساخت کلاس یک نمونه استپر برای مشخص کردن مراحل موتور و پین هایی که متصل شده
Stepper stepper(STEPS, 8, 9, 10, 11);
//پیش خوانی از ورودی آنالوگ
int previous = 0;
void setup()
{
// تنظیم سرعت موتور روی 30 RPMs
stepper.setSpeed(30);
}
void loop()
{
// دریافت مقدار سنسور
int val = analogRead(0);
// حرکت یک مرحله معادل تغییر خوانده شده از سنسور
stepper.step(val - previous);
// یادآوری مقدار قبلی سنسور
previous = val;
}
لینک سایت:Arduino - MotorKnob