ملخص تقني
الميزات:
لوحة التوسيع هذه، كلوحة توسيع للمشغل، يمكن استخدامها في آلات النقش والطابعات 3D.
هناك أربعة مقابس في المجموع، يمكنها تشغيل أربعة محركات خطوية (a4988 مثلا). كل محرك خطوي يحتاج إلى منفذي IO فقط. بعبارة أخرى، ستة منافذ IO يمكنها إدارة ثلاثة محركات خطوية بشكل جيد. عملية جدا في الاستخدام.
إعداد توزيع منافذ IO مع وحدة UNO Arduino.
الدبابيس IO المقابلة: (للاستدلال فقط)
uno for Arduino ---------------------- لوحة التوسيع
8 ------------------------ en (تمكين المحرك الخطوي، نشط منخفض)
7 ----------------------- z.dir (تحكم اتجاه المحور z)
6 ----------------------- y.dir (تحكم اتجاه المحور y)
5 ----------------------- x.dir (تحكم اتجاه المحور x)
4 ---------------------- z.step (تحكم خطوات المحور z)
3 ---------------------- y.step (تحكم خطوات المحور y)
2 ---------------------- x.step (تحكم خطوات المحور x)
البرنامج:
#define en 8 // تمكين المحرك الخطوي، نشط منخفض
#define x_dir 5 // تحكم اتجاه المحرك الخطوي للمحور x
#define y_dir 6 // تحكم اتجاه المحرك الخطوي للمحور y
#define z_dir 7 // تحكم اتجاه المحرك الخطوي للمحور z
#define x_stp 2 // تحكم خطوات المحور x
#define y_stp 3 // تحكم خطوات المحور y
#define z_stp 4 // تحكم خطوات المحور z
/ *
// الدالة: step. الوظيفة: التحكم في اتجاه المحرك الخطوي وعدد الخطوات.
// المعاملات: dir للتحكم في الاتجاه، dirpin دبوس dir المقابل للمحرك الخطوي، stepperpin دبوس "step" المقابل للمحرك الخطوي، steps عدد الخطوات؛ لا قيمة إرجاع.
* /
دالة بلا إرجاع step (منطقي dir، بايت dirpin، بايت stepperpin، عدد صحيح steps)
{
كتابة رقمية (dirpin، dir)؛
delay (50);
حلقة تكرار for (int i = 0; i كتابة رقمية (stepperpin، مرتفع)؛
تأخير بالميكروثانية (800)؛
كتابة رقمية (stepperpin، منخفض)؛
تأخير بالميكروثانية (800)؛
}
}
void setup () { // منافذ io للمحور المستخدم من المحرك الخطوي تضبط كخرج
ضبط وضع الدبوس (x_dir، خرج)؛ ضبط وضع الدبوس (x_stp، خرج)؛
ضبط وضع الدبوس (y_dir، خرج)؛ ضبط وضع الدبوس (y_stp، خرج)؛
ضبط وضع الدبوس (z_dir، خرج)؛ ضبط وضع الدبوس (z_stp، خرج)؛
pinMode (en, output);
كتابة رقمية (en، منخفض)؛
}
دالة الحلقة loop () {
step (false, x_dir, x_stp, 200); // محرك المحور X عكسيا بلفة واحدة، 200 خطوة تساوي دورة كاملة.
step (false, y_dir, y_stp, 200); // محرك المحور Y عكسيا بلفة واحدة، 200 خطوة تساوي دورة كاملة.
step (false, z_dir, z_stp, 200); // محرك المحور Z عكسيا بلفة واحدة، 200 خطوة تساوي دورة كاملة.
delay (1000);
step (true, x_dir, x_stp, 200); // محرك المحور X أماميا بلفة واحدة، 200 خطوة تساوي دورة كاملة.
step (true, y_dir, y_stp, 200); // محرك المحور Y أماميا بلفة واحدة، 200 خطوة تساوي دورة كاملة.
step (true, z_dir, z_stp, 200); // محرك المحور Z أماميا بلفة واحدة، 200 خطوة تساوي دورة كاملة.
delay (1000);
}
تنبيه: عند إدخال وحدة a4988، يجب الحرص على عدم إدخالها بالاتجاه المعاكس. توصيل المحرك الخطوي كما يلي:
2a، 2b مجموعة واحدة (أحمر، أخضر)، 1a، 1b مجموعة واحدة (أزرق، أصفر)، إذا أردت تغيير الاتجاه، يمكن تبديل موضع إحدى المجموعتين، مثلا 2A و2B يتبادلان مع بعضهما.
