مقدمة
محرك Stepper motor ويدعى بالعربية المحرك الخطوي (محرك خطوة بخطوة) وهو محرك كهربائي يستخدم في الآلات الصغيرة التي تحتاج لدقة في التحكم مثل الطابعة وقاطع الليزر .. الخ
من أهم مميزات هذا المحرك الخطوي هو انه يمكنه التحكم في عدد وسرعة جوراته وزاوية التوقف بدقة.
في هذا الدرس ستتعلم كيفية التحكم بالمحرك الخطوي stepper motor عبر الأردوينو ورقاقة التحكم L293D والتي استخدمناها بالدرس السادس عشر.
المواد والأدوات
1× المحرك الخطوي (5V Stepper Motor)
1× دائرة متكاملة للتحكم بالمحرك(Dual H-Bridge L293D)
1× لوحة التجارب (Half-size Breadboard)
1× اردوينو اونو
1× سلك اردوينو
توصيل الدائرة
محرك stepper motor لديه 5 اسلاك ، كما سنقوم باستخدام رقاقة L293D كاملة هذه المرة .
لاستخدام المحرك الخطوي بالمشروع يمكن استخدام اسلاك jumper wires وربطها بالمحرك عبر المقبس الموجود بنهاية اسلاكه الخمسة حتى تتمكن مر توصيله بلوح التجارب.
لاحظ أن السلك الأحمر للمحرك لايتم ربطه بأي شيء.
الكود البرمجي
الكود التالي يستخدم شاشة الاتصال التسلسلي serial monitor ، لذلك بعد رفع الكود على الاردوينو وتشغيله ، قم بفتح شاشة الاتصال التسلسلي Serial Monitor وقم بإدخال رقم الخطوات ‘steps’.
جرب ادخال القيمة 500 ، هذا سيجعل المحرك يدور حتى درجة 360 درجة. قم بإدخال القيمة -500 وسيقوم المحرك بالدوران بشكل عكسي.
#include <Stepper.h> int in1Pin = 12; int in2Pin = 11; int in3Pin = 10; int in4Pin = 9; Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin); void setup() { pinMode(in1Pin, OUTPUT); pinMode(in2Pin, OUTPUT); pinMode(in3Pin, OUTPUT); pinMode(in4Pin, OUTPUT); while (!Serial); Serial.begin(9600); motor.setSpeed(20); } void loop() { if (Serial.available()) { int steps = Serial.parseInt(); motor.step(steps); } }
كما تلاحظ يوجد مكتبة برمجية خاصة لدعم محرك stepper motor مما يجعل استخدام المحرك سهل جداً.
بعد اضافة مكتبة ‘stepper’ البرمجية ، يتم تعريف المنافذ ‘in1’ – ‘in4’.
Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin);
العامل المدخل الأول هو عبار عن عدد الخطوات ‘steps’ التي سينفذها المحرك.
بعد ذلك يقوم متحكم الأردوينو بإنتظار الأرقام المقترحة للادخال من خلال الاتصال التسلسلي Serial Monitor.
أخيراً ، الأمر التالي يقوم بتحديد السرعة للمحرك.
motor.setSpeed(10);
دالة loop واضحة ، حيث ينتظر الرقم المدخل (كنص) من خلال الاتصال التسلسلي Serial Monitor ويتم تحويل النص لرقم عبر استخدام ‘parseint’. بعد ذلك يتم توجيه المحرك الخطوي بعدد خطوات الحركة.
المحرك الخطوي Stepper Motor
المحرك الخطوي Stepper motor يستخدم تروس والمغناطيس الكهربائي لدفع التروس خطوه بخطوه.
أنشطة أخرى
حاول تغيير الأمر الذي يقوم بتحديد سرعة المحرك الخطوي.
motor.setSpeed(20);
=قم بالتلاعب بالقيم والأسلاك لتتعرف على تأثير التغيرات التي قمت بها بالتجربة.