بسم الله الرحمن الرحیم
امروز میخوایم براتون آموزش راه اندازی استپ موتور رو با استفاده از برد آردوینو و 3 نوع درایور(ULN2003 و L298 و A4988) قرار بدم.
آردوینو قابلیت اینو داره که پالس PWM درست کنه و برخی پایه های اون میتونن با این قابلیت دیوتی سایکل یا دوره کاری رو تغییر بدن و اینجوری میشه موتورهای استپر، موتورهای دی سی و موتورهای براشلس رو کنترل کرد و حتی میشه مثلا آلترناتور ماشینو به موتور تبدیل کرد.
دوره کاری چیست؟ خوب ببینید وقتی شما پین خروجی اردوینو تون 5 ولت بیشتر نداره و دیجیتال هست یعنی یا صفر هست یا 1 پس نمیتونید با این روش ولتاژ رو تغییر بدید. برای این کار نیاز دارید در هر سیکلی که پالس ایجاد میکنید عرض پالستون رو کم و یا زیاد کنید و مثلا با یه ولوم هم کنترلش کنید تا بتونید با تغییر زمان 0 و 1 بودن اون پین ولتاژشو کنترل کنید.
همونطور که میبینید با تغییر دیوتی سایکل مقدار ولتاژ تغییر میکنه و از اونجایی که شما نمیتونید همین رو مستقیما به موتور وصل کنید(چون میکرو کنترلرها محدودیت ولتاژ و جریان دارن) باید از یه ماسفت یا ترانزیستور و حتی بهتر اینکه از یه درایور موتور مثل ULN2003 و یا L298 استفاده کنید.
این درایور مثل ترانزیستور میمونه و در واقع دو تا پل H ترانزیستوری هست و شما با پالس PWM که بهش میدین اون رو روشن و خاموش میکنید و اون هم تغریبا با همون نظم ولتاژ منبع تغذیه خارجی که بهش وصل کردین(مثلا 12 ولت) رو به پالس PWM تبدیل میکنه و ولتاژ موتور شما تغییر میکنه.
>>>دانلود فیلم آموزشی پروژه با حجم 24 مگابایت<<<
int in1 = 8; //Declaring where our module is wired
int in2 = 9;
int ConA = 10; // Don’t forget this is a PWM DI/DO
int speed1;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
digitalWrite(in1, LOW); //Switch between this HIGH and LOW to change direction
digitalWrite(in2, HIGH);
speed1 = analogRead(A0);
speed1 = speed1 * 0.2492668622; //We read thea analog value from the potentiometer calibrate it
analogWrite(ConA, speed1); // Then inject it to our motor
}
ضمنا دوستان میتونین با ماسفت و درایور های دیگه مثل ای سی ULN2003 هم این کارو انجام بدین
استپر موتور:
موتور پله ای – Stepper Motor یکی از موتور های پرکاربرد در صنایع کوچک و کارهای کنترلی بخصوص دانش رباتیک می باشد. موتورهای پله ای در واقع نوعی از موتور الکتریکی هستند که در آنها گردش کامل رخ نداده و با توجه به نیاز تنها به میزان درجه ای خاص می چرخند. بزرگترین تفاوت ظاهری این موتور، بدون در نظر گرفتن درون آن، تعداد سیم های خروجی است که نسبت به یک موتور DC به راحتی قابل تشخیص است(بیش از 2 سیم خروجی دارد). کیفیت کاری و یا به زبان ساده تر دقیق تر بودن در موتور پله ای توسط زاویه گام(برخی مراجع آن را Stepping Angle نیز می نامند) تعیین می گردد و هرچه این عدد کوچک تر باشد موتور در زاویه های کمتری به صورت پله ای واکنش نشان می دهد، در برخی از موتورها این عدد را تا 0.60 درجه هم ذکر کرده اند که بسیار دقت بالایی میباشد. هرچند کاربرد استپر موتور ها امروزه بسیار گسترده است اما استپ موتور ها را می توان در وسایلی مانند CNC ها ، پرینتر های ۳ بعدی ( ۳D Printer ) ، پرینتر های جوهر افشان ، اسکنر ها ، پلاتر ها ، فلاپی درایو ها ، دی وی دی درایو ها ( DVD Drive ) ، لنز بعضی از دوربین های دیجیتال یافت که البته این موارد گوشه ای از کاربرد استپ موتور هاست . به طور کلی برای سیستم هایی که نیاز است موقعیت دقیق ( افقی ، عمودی ) یا زاویه دقیق را تعیین کنیم می توانیم از استپ موتور ها استفاده نماییم.
استپر موتورها دارای حداکثر گشتاور در وضعیت متوقف و قفل هستند و گشتاور آنها با افزایش سرعت شروع به کاهش می کند و اگر فرکانس موج ورودی از مقدار مشخصی بالاتر برود، گشتاور خروجی موتور به حدی کاهش می یابد که حتی قادر به چرخاندن روتور خود هم نیست. پس از نظر گشتاور مزیت استپر موتور حرکت در دورهای پائین اما با گشتاور بالاست.
اینم اضافه کنم که استپر موتورها معمولا در دو نوع 4 سیمه و بیش از چهار سیمه تولید میشن و نوع 4 سیمه رو Bipolar و نوع 5،6،7 و 8 سیمه رو Unipolar میگن. با دقت به نقشه بالا و یه مولتی متر و تست مقاومت سیم پیچ ها میتونید با انواع درایور راه اندازیشون کنید. مهم ترین و اولین قدم برای راه اندازی این نوع موتور تشخیص نوع و ترتیب سیمهاست که اونم در ادامه توضیح خواهم داد.
راه اندازی موتورها از جمله استپر موتور با آی سی ULN2003 :
همونطور که میبینید پین ها و پایه هایی که باید وصل کنید مشخصه و کدش هم مثل همون L298 هست و اینم بگم که بر خلاف L298 که روی ماژولش دیود هرزگرد داشت این آی سی نیاز به دیود هرزگرد نداره چون خودش داخل خودش داره(دیود هرزگرد دیودی هست که از آی سی و ترانزیستورش در برابر جریان معکوس موتور محافظت میکنه).
/*
Stepper Motor Control - one revolution
This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 - 11 of the Arduino.
The motor should revolve one revolution in one direction, then
one revolution in the other direction.
Created 11 Mar. 2007
Modified 30 Nov. 2009
by Tom Igoe
*/
#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(60);
// initialize the serial port:
Serial.begin(9600);
}