تعلم الوحدات · الدرس 2.24
المحرك الخطوي (Stepper Motor)
العودة إلى الدروسالمبدأ والمواصفات
ستتعلم قيادة محرك خطوي (Stepper Motor) بسهولة؛ يأتي المحرك مع لوحة قيادة تسهل توصيله بـ UNO.
المكونات المطلوبة
- لوحة أردوينو (ELEGOO UNO R3) ولوحة تجارب (Breadboard) 830 نقطة.
- وحدة قيادة المحرك الخطوي (ULN2003 Stepper Motor Driver Module) ومحرك خطوي (Stepper Motor).
- محول طاقة (9V1A Adapter) ووحدة تغذية (Power Supply Module).
- ستة أسلاك أنثى إلى ذكر (Female to Male DuPont Wires)، وسلك ذكر إلى ذكر (Male to Male Jumper Wires).
المحرك الخطوي (Stepper Motor)
يحول النبضات الكهربائية إلى خطوات ميكانيكية منفصلة. يدور المحور عند إرسال النبضات بالتتابع الصحيح. يحدد ترتيب النبضات الاتجاه، وترددها السرعة، وعددها مقدار الدوران.
يمكن التحكم فيه بدقة بحلقة مفتوحة دون تغذية راجعة للموضع، مما يستغني عن حساسات أو مشفّرات بصرية مكلفة. تعرف موضعه بتتبع نبضات الخطوات.

مواصفات 28BYJ-48
- جهد 5V DC؛ أربعة أطوار؛ نسبة تخفيض 1/64؛ زاوية الخطوة 5.625°/64؛ تردد 100Hz.
- مقاومة DC مقدارها 50Ω±7% عند 25°C.
- تردد بدء الحركة دون حمل أكبر من 600Hz، وتردد استمرار الحركة دون حمل أكبر من 1000Hz.
- عزم بدء الحركة أكبر من 34.3mN·m عند 120Hz، وعزم تثبيت ذاتي أكبر من 34.3mN·m.
- عزم احتكاك 600–1200gf·cm، وعزم بدء 300gf·cm.
- مقاومة عزل أكبر من 10MΩ عند 500V، واختبار عزل 600VAC/1mA/1s، وفئة عزل A.
- ارتفاع حرارة أقل من 40K عند 120Hz؛ ضجيج أقل من 35dB عند 120Hz بلا حمل وعلى مسافة 10cm.
دوائر القيادة
للمحرك ثنائي القطب أربعة أسلاك عادة، دون نقطة وسط مشتركة؛ وله مجموعتا ملفات مستقلتان. بقياس المقاومة تجد زوجين بمقاومة متساوية، بينما قياس سلكين من ملفين مختلفين يعطي مقاومة لا نهائية أو انقطاعًا.

وحدة قيادة المحرك الخطوي (ULN2003 Stepper Motor Driver Module)
أبعاد 42×30mm؛ شريحة قيادة ULN2003 بتيار 500mA؛ LEDs باسم A و B و C و D لحالة الأطوار الأربعة؛ موصل أبيض قياسي للمحرك؛ أطراف تغذية منفصلة؛ والأطراف المتبقية متاحة لتجارب إضافية.

أبسط قيادة للمحرك أحادي القطب تستخدم مصفوفة ترانزستورات ULN2003A: سبع مراحل Darlington، شبيهة بسبعة TIP120 في حزمة واحدة، حتى 500mA لكل قناة، وهبوط جهد نحو 1V أثناء التشغيل. تضم صمامات داخلية لكبح نبضات الجهد عند الأحمال الحثية. يدار المحرك بإرسال الجهد إلى الملفات بتتابع محدد.


التوصيل


نستخدم المنافذ 8–11 للتحكم. وصّل أرضي UNO بأرضي دائرة المحرك.
البرنامج والمكتبة
قبل رفع البرنامج، تأكد من توفر مكتبة Stepper في بيئة Arduino IDE. إذا لم تكن مثبتة أو ظهرت رسالة تشير إلى مكتبة مفقودة، فاتبع خطوات التثبيت في قسم «ما هي المكتبات؟» وطرق تثبيتها في الدرس 1.5 «وميض LED وإضافة المكتبات».
افتح ملف البرنامج stepper_Example.ino من ملفات الدرس في بيئة Arduino IDE. بعد إتمام التوصيلات، وصّل لوحة أردوينو (UNO R3 Board) بالحاسوب بكابل توصيل (USB Cable)، ثم اضغط زر Upload (رفع) لنقل البرنامج إلى اللوحة وتشغيله عليها.
إذا تعذر نقل البرنامج إلى اللوحة، فراجع قسم «رفع البرنامج ومعالجة خطأ الاتصال» في الدرس 1.5 «وميض LED وإضافة المكتبات» للتحقق من اتصال USB واختيار نوع اللوحة والمنفذ التسلسلي في بيئة Arduino IDE.
الكود
stepper_Example/stepper_Example.ino
//www.elegoo.com
//2018.10.25
/*
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.
*/
#include <Stepper.h>
const int stepsPerRevolution = 2048; // change this to fit the number of steps per revolution
const int rolePerMinute = 15; // Adjustable range of 28BYJ-48 stepper is 0~17 rpm
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
myStepper.setSpeed(rolePerMinute);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}