این آموزش نحوه حرکت دو موتور پله ای را نشان می دهد تا به طور همزمان به نقطه مقصد مشخص شده برسند. راه حل های پیچیده زیادی برای انجام این کار وجود دارد مانند GRBL یا Marlin . با استفاده از آردوینو، کتابخانه های اختصاصی "Multi Stepper" نیز وجود دارد که می توانند از شما پشتیبانی کنند. با این حال، در اینجا از یک رویکرد اساسیتر استفاده میکنیم که این کار را تا حد امکان آسان میکند و در عین حال یک رابط کاربری ساده را با استفاده از سه LED و چند میکروسوئیچ اضافه میکنیم.
تدارکات
- 1 آردوینو نانو (یا Uno، با CPU 328P)
- 1 تخته نان (830 سوراخ)
- 14 کابل جامپر (نر به نر، 10 تا 20 سانتی متر)
- 12 کابل جامپر (نر به ماده، 10…20 سانتی متر)
- 2 ال ای دی (5 میلی متر، 20 میلی آمپر، حدود 2 ولت)
- 2 مقاومت (220 اهم)
- 2 عدد میکروسوئیچ
- 1 پتانس متر (5 یا 10 کیلو اهم)
- 1 منبع تغذیه 5 ولت
- 2 28BYJ-48 Stepper Motors (نسخه 5 ولت) + تابلوهای درایور ULN 2003
مرحله 1: برد برد خود را پیکربندی کنید
![](https://duino4projects.com/wp-content/uploads/2022/02/Synchronized-2-Axis-Motion-With-Variable-Speed-Arduino-LEDs-28BYJ-48.jpg)
برد برد خود را همانطور که در تصاویر بالا نشان داده شده است تنظیم کنید:
- GND و 5 ولت را به ریل های مطابق با تخته نان وصل کنید .
- پین های D2 تا D5 آردوینو به In1 تا In4 اولین برد ULN2003 می روند.
- پین های D6 تا D9 آردوینو به In1 تا In4 برد دوم ULN2003 می روند.
- پایه D10 آردوینو به پایه + (پای بلندتر) اولین LED (قرمز) می رود. پایه کوتاهتر (-) را به یک مقاومت 220 Ω و سر دیگر این مقاومت را به ریل زمین وصل کنید .
- D11 را به همین ترتیب به LED دوم و مقاومت آن وصل کنید .
- پایه های آردوینو A0، A1 و A2 را به میکروسوئیچ ها وصل کنید. طرف دیگر میکروسوئیچ ها را به GND وصل کنید . برای جلوگیری از اتصال کوتاه در اینجا از هیچ مقاومت کششی استفاده نمی کنیم ، زیرا از کشش هایی استفاده می کنیم که قبلاً در آردوینو یکپارچه شده اند.
- پایه چپ پتانسیومتر را به زمین ، پای راست را به 5 ولت و پایه وسط را به A3 آردوینو وصل کنید .
- خود آردوینو در اولین تست ها از طریق پورت USB تغذیه می شود. با این وجود، موتورها نباید از طریق پورت USB تغذیه شوند. بنابراین، یک منبع تغذیه جدا شده را به ریل های پلاس/زمینی در طرف دیگر تخته نان وصل کنید. پین + و – هر برد ULN2003 را به این ریل های پلاس/زمینی وصل کنید . به عنوان آخرین مرحله، یک پل بین هر دو ریل زمینی ایجاد کنید .
مرحله 2: آزمون اول
![](https://duino4projects.com/wp-content/uploads/2021/06/A-First-Test.jpg)
اکنون میتوانیم اولین آزمایش تنظیمات خود و «رابط کاربری» را انجام دهیم.
Arduino IDE را باز کنید و فایل پیوست شده " Two_Steppers_-_First_Test.ino " را بارگذاری کنید. باید بدون هیچ گونه کتابخانه اضافی کامپایل شود. بیشتر کدها کاملاً خود توضیحی هستند.
- متد setup() فقط تعریف میکند که کدام پینها برای عملکردهای ورودی و خروجی استفاده میشوند و اتصال سریال به رایانه شخصی باز میشود.
- متد loop() در حال حاضر به طور مداوم دنباله زیر را انجام می دهد:
- مقدار پتانسیومتر را از ورودی آنالوگ بخوانید، مقیاس نمایش مقادیر بین 0 تا 100٪، دکمه ها را بخوانید و وضعیت تمام عناصر ورودی را در رابط سریال چاپ کنید.
- یک LED را روشن و دیگری را خاموش کنید.
- با استفاده از دو حلقه for، هر موتور را تقریباً یک چهارم چرخش کامل حرکت دهید (8 * 128 = 1024 نیم قدم در هر چهارم چرخش؛ چرخش کامل معمولاً 4076 نیم قدم برای موتورهای 28BYJ-48 است). در طول هر دومین اجرای حلقه ()، مراحل در جهت جلو انجام می شود. در طول اجرای دیگر، موتورها به موقعیت اولیه باز می گردند.
مفهوم اصلی موتورهای پله ای متحرک، روشن و خاموش کردن سیم پیچ ها در موتورها با استفاده از پایه های خروجی دیجیتال است. در آردوینو، آنها با رجیسترهای PORTB و PORTD نشان داده میشوند، جایی که D2…5 (= موتور 1) بیتهای 2…5 PORTD، D7…8 (دو سیم اول که به موتور 2 میروند) بیتهای 6…7 هستند. از PORTD و D9…10 (دو سیم دوم موتور 2) بیت های 0…1 از PORTB هستند. از این رو، خطوط
PORTB = (PORTB & B11111100) | stepPatternB[k]; PORTD = (PORTD & B00000011) | stepPatternD[k];
وضعیت فعلی تمام پینهایی را که به موتورها مرتبط نیستند (عملکرد AND) "ذخیره" کنید و سپس الگوی خروجی را برای مرحله (نیمه) بعدی (عملیات OR) اعمال کنید.
موتورهای 28BYJ-48 در بسیاری از وبسایتهای دیگر مورد بحث قرار گرفتهاند، بنابراین جزئیات بیشتر – در صورت نیاز – را میتوانید در اینجا ، اینجا یا اینجا بیابید .
پس از کامپایل و آپلود کد، “ Tools → Serial Monitor ” را در Arduino IDE انتخاب کنید. باید ببینید که موتورها در حال کار هستند، LEDها (روی تخته نان و بردهای ULN2003) چشمک می زنند. پاسخ به فشار دادن (و نگه داشتن) / رها کردن میکروسوئیچ ها و چرخاندن پوتی روی پنجره نمایشگر سریال ترسیم می شود.
اما: ما هنوز به پایان نرسیده ایم، زیرا سیستم فقط به عقب و جلو می رود. پس بیایید در ادامه یک نظریه انجام دهیم.