🌀 درایور استپر ULN2003 (ULN2003 Stepper Driver)
| اسم انگلیسی | ULN2003 Stepper Driver |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | ⬛ آیسی، درایور و رگولاتور |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
درایور استپر ULN2003 (ULN2003 Stepper Driver) یک برد کوچک با آیسی ULN2003 است: هفت ترانزیستور دارلینگتون که هر کدام تا حدود ۵۰۰ میلیآمپر را به زمین وصل میکنند و دیود محافظ داخلی هم دارند. رایجترین کاربردش راه انداختن موتور پلهای 28BYJ-48 است؛ موتور ۵ ولتی ارزانی که سوکت سفیدش مستقیم روی همین برد مینشیند. چهار LED روی ماژول نشان میدهند کدام سیمپیچ برق گرفته است. با آن عقربهی ساعت، ردیاب خورشیدی، دریچهی خودکار و صفحهی چرخان عکاسی میسازی.
ULN2003 در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی ماژول ULN2003 و موتور تکقطبی 28BYJ-48 را ندارد. موتور پلهای ووکوی wokwi-stepper-motor از نوع دوقطبی (Bipolar) است و معمولاً با درایور wokwi-a4988 بسته میشود؛ یعنی کدش بهجای چهار پایه با دو پایهی STEP و DIR کار میکند (صفحهی استپر NEMA 17 همین را توضیح میدهد). برای تمرین منطق چهار فاز هم میتوانی چهار wokwi-led به پینهای 8 تا 11 بزنی و ترتیب روشن شدنشان را ببینی؛ همان کاری که LEDهای روی ماژول واقعی میکنند.
ترکیب اصلی ULN2003 و 28BYJ-48 در تینکرکد فارسی رایگان شبیهسازی میشود؛ پروژهی آمادهاش موتور پلهای است و نسخهی نرمترش با شتاب، AccelStepper.
سیمکشی با آردوینو
| پایهی ماژول | وصل به |
|---|---|
| IN1 | پین 8 |
| IN2 | پین 9 |
| IN3 | پین 10 |
| IN4 | پین 11 |
| + (۵ ولت برای موتور ۵ ولتی) | منبع ۵ ولت جدا با جریان کافی؛ برای تست کوتاه، 5V آردوینو |
| − | GND، مشترک با آردوینو |
| سوکت پنجسیمه | کابل موتور 28BYJ-48 (فقط از یک جهت جا میرود) |
موتور در حال کار حدود ۲۰۰ تا ۲۵۰ میلیآمپر میکشد. از USB کامپیوتر جواب میدهد، ولی اگر همزمان سروو یا ماژول دیگری داری، منبع جدا بگذار و زمینها را به هم وصل کن.
کد نمونه
// ULN2003 + 28BYJ-48: one turn, one turn back, then four quarter turns.
#include <Stepper.h>
const int STEPS_PER_REV = 2048; // 28BYJ-48 in full-step mode (about 2048)
// Note the order: IN1, IN3, IN2, IN4
Stepper motor(STEPS_PER_REV, 8, 10, 9, 11);
void releaseCoils() { // cut coil current while standing still
for (int p = 8; p <= 11; p++) digitalWrite(p, LOW);
}
void setup() {
Serial.begin(9600);
motor.setSpeed(12); // rpm; above about 15 it starts to skip
}
void loop() {
Serial.println("one turn forward");
motor.step(STEPS_PER_REV);
releaseCoils();
delay(500);
Serial.println("one turn back");
motor.step(-STEPS_PER_REV);
releaseCoils();
delay(500);
for (int i = 0; i < 4; i++) { // 90 degrees at a time
motor.step(STEPS_PER_REV / 4);
delay(300);
}
releaseCoils();
delay(1000);
}
عدد ۲۰۴۸ از گیربکس حدود ۱ به ۶۴ داخل موتور میآید، برای همین 28BYJ-48 دقیق ولی کند است. تابع releaseCoils بعد از هر حرکت جریان سیمپیچها را قطع میکند تا موتور و ماژول بیدلیل داغ نشوند؛ اگر بار باید سر جایش قفل بماند، آن را صدا نزن.
اشتباههای رایج
- ترتیب 8، 9، 10، 11 در سازنده: موتور فقط میلرزد یا رفتوبرگشت کوچک میزند. ترتیب درست 8، 10، 9، 11 است.
- سرعت زیاد: بالاتر از حدود ۱۵ دور در دقیقه موتور گام جا میاندازد و زاویهها خطا میشوند.
- زمین مشترک نیست: با منبع جدا، منفی منبع باید به GND آردوینو هم برسد.
- نسخهی ۱۲ ولتی موتور با ۵ ولت: 28BYJ-48 دو نسخه دارد؛ نوشتهی روی بدنه را بخوان.
آموزشهای مرتبط
- استپر موتور 28BYJ-48 با درایور ULN2003 و آردوینو
- راهانداز دارلینگتون ULN2003 در ۱۵ مدار پایه
- موتور پلهای در ووکوی
- درس موتور پلهای
سؤالهای رایج
28BYJ-48 با ULN2003 در هر دور چند گام دارد؟
در حالت گام کامل که کتابخانهی Stepper استفاده میکند حدود ۲۰۴۸ گام، و در حالت نیمگام حدود ۴۰۹۶. علتش گیربکس حدود ۱ به ۶۴ داخل خود موتور است.
چرا موتور 28BYJ-48 فقط میلرزد و نمیچرخد؟
تقریباً همیشه ترتیب پایهها در سازندهی Stepper است. برای این ماژول باید ترتیب IN1، IN3، IN2، IN4 یعنی 8، 10، 9، 11 را بنویسی. سرعت خیلی زیاد یا تغذیهی ضعیف هم همین علامت را دارد.
ووکوی ULN2003 دارد؟
تا جایی که میدانیم نه. ووکوی موتور پلهای دوقطبی با درایور A4988 دارد؛ مدار ULN2003 و 28BYJ-48 را میتوانی در شبیهساز تینکرکد فارسی رایگان اجرا کنی.