- طرق التشغيل في محرك متدرج
- إنشاء واجهة مستخدم رسومية MATLAB للتحكم في محرك متدرج
- كود MATLAB للتحكم في محرك متدرج باستخدام Arduino
- المواد المطلوبة
- مخطط الرسم البياني
- التحكم في محرك متدرج باستخدام MATLAB
المحركات السائر هي محرك تيار مستمر بدون فرش يدور بخطوات منفصلة ، وهو الخيار الأفضل للعديد من تطبيقات التحكم في الحركة الدقيقة. أيضًا ، تعد محركات السائر جيدة لتحديد المواقع والتحكم في السرعة والتطبيقات التي تتطلب عزم دوران عاليًا بسرعة منخفضة.
في البرامج التعليمية السابقة لـ MATLAB ، أوضحنا كيفية استخدام MATLAB للتحكم في محرك التيار المستمر والمحرك المؤازر والأجهزة المنزلية. اليوم سوف نتعلم كيفية التحكم في Stepper Motor باستخدام MATALB و Arduino. إذا كنت جديدًا على MATLAB ، فمن المستحسن أن تبدأ مع برنامج وميض LED بسيط مع MATLAB.
طرق التشغيل في محرك متدرج
قبل أن تبدأ في الترميز لمحرك متدرج ، يجب أن تفهم مفهوم العمل أو الدوران لمحرك متدرج. نظرًا لأن الجزء الثابت في وضع السائر مبني من أزواج مختلفة من الملفات ، يمكن إثارة كل زوج من الملفات بعدة طرق مختلفة ، مما يتيح تشغيل الأوضاع في العديد من الأوضاع المختلفة. فيما يلي التصنيفات الواسعة
وضع الخطوة الكاملة
في وضع الإثارة بخطوة كاملة ، يمكننا تحقيق دوران كامل بزاوية 360 درجة مع أقل عدد من المنعطفات (الخطوات). لكن هذا يؤدي إلى خمول أقل ولن يكون الدوران سلسًا أيضًا. هناك تصنيفان آخران في إثارة الخطوة الكاملة ، هما خطوة واحدة على الموجة ومرحلة مرحلتين.
1. خطوة واحدة على مراحل أو خطوة موجية: في هذا الوضع ، سيتم تنشيط طرف واحد (طور) من المحرك في أي وقت. يحتوي هذا على عدد أقل من الخطوات وبالتالي يمكنه تحقيق دوران كامل بمقدار 360 درجة. نظرًا لأن عدد الخطوات أقل ، فإن التيار المستهلك بهذه الطريقة منخفض جدًا أيضًا. يوضح الجدول التالي تسلسل خطوة الموجة لمحرك متدرج رباعي الطور
خطوة | المرحلة 1 (أزرق) | المرحلة 2 (وردي) | المرحلة 3 (أصفر) | المرحلة 4 (برتقالي) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. على مرحلتين: كما يشير الاسم في هذه الطريقة ، ستكون مرحلتان واحدة. إنه يحتوي على نفس عدد الخطوات مثل خط خطوة الموجة ، ولكن نظرًا لأنه يتم تنشيط ملفين في وقت واحد ، فيمكنه توفير عزم وسرعة أفضل مقارنة بالطريقة السابقة. على الرغم من أن أحد الجوانب السلبية هو أن هذه الطريقة تستهلك أيضًا المزيد من الطاقة.
خطوة |
المرحلة 1 (أزرق) |
المرحلة 2 (وردي) |
المرحلة 3 (أصفر) |
المرحلة 4 (برتقالي) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
وضع نصف الخطوة
وضع نصف الخطوة هو مزيج من وضع تشغيل واحد وطور مرحلتين. سيساعدنا هذا المزيج في التغلب على العيب المذكور أعلاه لكلا الوضعين.
كما كنت قد خمنت ذلك لأننا نجمع بين كلتا الطريقتين ، سيتعين علينا تنفيذ 8 خطوات في هذه الطريقة للحصول على دوران كامل. تسلسل التحويل لمحرك متدرج رباعي الأطوار كما هو موضح أدناه
خطوة |
المرحلة 1 (أزرق) |
المرحلة 2 (وردي) |
المرحلة 3 (أصفر) |
المرحلة 4 (برتقالي) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
ومن ثم ، فإن اختيارك هو برمجة محرك السائر الخاص بك في أي وضع ، لكنني أفضل وضع الخطوة الكاملة على مرحلتين. نظرًا لأن هذه الطريقة توفر سرعة أعلى ، فإن طريقة الطور الواحد وبالمقارنة بنصف الوضع ، يكون جزء التشفير أقل بسبب عدد أقل من الخطوات في طريقة مرحلتين.
تعرف على المزيد حول محركات السائر وأوضاعها هنا
إنشاء واجهة مستخدم رسومية MATLAB للتحكم في محرك متدرج
ثم يتعين علينا بناء واجهة المستخدم الرسومية (GUI) للتحكم في محرك السائر. لبدء تشغيل واجهة المستخدم الرسومية ، اكتب الأمر أدناه في نافذة الأوامر
يرشد
ستفتح نافذة منبثقة ، ثم حدد واجهة مستخدم رسومية جديدة فارغة كما هو موضح في الصورة أدناه ،
اختر الآن زري تبديل لتدوير محرك السائر باتجاه عقارب الساعة وعكس اتجاه عقارب الساعة ، كما هو موضح أدناه ،
لتغيير حجم الزر أو تغيير شكله ، ما عليك سوى النقر فوقه وستتمكن من سحب زوايا الزر. من خلال النقر المزدوج على زر التبديل ، يمكنك تغيير لون وسلسلة وعلامة هذا الزر المعين. لقد قمنا بتخصيص زرين كما هو موضح في الصورة أدناه.
يمكنك تخصيص الأزرار حسب اختيارك. الآن عند حفظ هذا ، يتم إنشاء رمز في نافذة محرر MATLAB. لتشفير Arduino الخاص بك لأداء أي مهمة متعلقة بمشروعك ، عليك دائمًا تحرير هذا الرمز الذي تم إنشاؤه. أدناه قمنا بتحرير كود MATLAB. يمكنك معرفة المزيد حول نافذة الأوامر ، ونافذة المحرر ، وما إلى ذلك في دليل بدء استخدام MATLAB.
كود MATLAB للتحكم في محرك متدرج باستخدام Arduino
تم تقديم كود MATLAB الكامل للتحكم في محرك السائر في نهاية هذا المشروع. علاوة على ذلك ، نقوم بتضمين ملف GUI (.fig) وملف الكود (.m) هنا للتنزيل (انقر بزر الماوس الأيمن على الرابط ثم حدد "حفظ الرابط باسم…")) ، والذي يمكنك من خلاله تخصيص الأزرار وفقًا لمتطلباتك. فيما يلي بعض التعديلات التي قمنا بها لتدوير Stepper Motor في اتجاه عقارب الساعة وعكس اتجاه عقارب الساعة باستخدام زري تبديل.
انسخ والصق الكود أدناه في السطر رقم. 74 للتأكد من أن Arduino يتحدث مع MATLAB في كل مرة تقوم فيها بتشغيل ملف m.
امسح الكل؛ العالمية أ ؛ أ = اردوينو () ؛
عندما تقوم بالتمرير لأسفل ، سترى أن هناك وظيفتين تم إنشاؤهما لكل من الأزرار في واجهة المستخدم الرسومية. اكتب الآن الكود في كلتا الوظيفتين وفقًا للمهمة التي تريد تنفيذها عند النقر.
في باتجاه حركة عقارب الساعة وظيفة الزر ، نسخ ولصق رمز أدناه فقط قبل نهاية الدالة على تدوير المحرك في اتجاه عقارب الساعة. من أجل التدوير المستمر للمحرك السائر في اتجاه عقارب الساعة ، نستخدم حلقة while لتكرار مرحلتين من خطوات الوضع الكامل في اتجاه عقارب الساعة.
أثناء الحصول على (hObject، 'Value') عالميًا ؛ writeDigitalPin (a، 'D8'، 1) ؛ writeDigitalPin (a، 'D9'، 0) ؛ writeDigitalPin (a، 'D10'، 0) ؛ writeDigitalPin (a، 'D11'، 1) ؛ وقفة (0.0002) ؛ writeDigitalPin (a، 'D8'، 0) ؛ writeDigitalPin (a، 'D9'، 0) ؛ writeDigitalPin (a، 'D10'، 1) ؛ writeDigitalPin (a، 'D11'، 1) ؛ وقفة (0.0002) ؛ writeDigitalPin (a، 'D8'، 0) ؛ writeDigitalPin (a، 'D9'، 1) ؛ writeDigitalPin (a، 'D10'، 1) ؛ writeDigitalPin (a، 'D11'، 0) ؛ وقفة (0.0002) ؛ writeDigitalPin (a، 'D8'، 1) ؛ writeDigitalPin (a، 'D9'، 1) ؛ writeDigitalPin (a، 'D10'، 0) ؛ writeDigitalPin (a، 'D11'، 0) ؛ وقفة (0.0002) ؛ النهاية
الآن في وظيفة الزر عكس اتجاه عقارب الساعة ، الصق الكود أدناه في الوظيفة لتدوير المحرك في اتجاه عكس عقارب الساعة. من أجل التدوير المستمر للمحرك السائر في اتجاه عكس اتجاه عقارب الساعة ، نستخدم أثناء الحلقة لتكرار خطوات الوضع الكامل على مرحلتين لاتجاه عقارب الساعة.
أثناء الحصول على (hObject، 'Value') عالميًا ؛ writeDigitalPin (a، 'D8'، 1) ؛ writeDigitalPin (a، 'D9'، 1) ؛ writeDigitalPin (a، 'D10'، 0) ؛ writeDigitalPin (a، 'D11'، 0) ؛ وقفة (0.0002) ؛ writeDigitalPin (a، 'D8'، 0) ؛ writeDigitalPin (a، 'D9'، 1) ؛ writeDigitalPin (a، 'D10'، 1) ؛ writeDigitalPin (a، 'D11'، 0) ؛ وقفة (0.0002) ؛ writeDigitalPin (a، 'D8'، 0) ؛ writeDigitalPin (a، 'D9'، 0) ؛ writeDigitalPin (a، 'D10'، 1) ؛ writeDigitalPin (a، 'D11'، 1) ؛ وقفة (0.0002) ؛ writeDigitalPin (a، 'D8'، 1) ؛ writeDigitalPin (a، 'D9'، 0) ؛ writeDigitalPin (a، 'D10'، 0) ؛ writeDigitalPin (a، 'D11'، 1) ؛ وقفة (0.0002) ؛ النهاية
المواد المطلوبة
- الكمبيوتر المحمول المثبت MATLAB (الأفضلية: R2016a أو الإصدارات الأحدث)
- اردوينو UNO
- محرك متدرج (28BYJ-48 ، 5VDC)
- ULN2003 - سائق محرك متدرج
مخطط الرسم البياني
التحكم في محرك متدرج باستخدام MATLAB
بعد إعداد الجهاز وفقًا لمخطط الدائرة ، ما عليك سوى النقر على زر التشغيل لتشغيل الكود المحرر في ملف.m
قد يستغرق MATLAB بضع ثوانٍ للرد ، لا تنقر على أي أزرار واجهة مستخدم رسومية حتى تعرض MATLAB رسالة مشغول في الجانب السفلي من الزاوية اليسرى كما هو موضح أدناه ،
عندما يكون كل شيء جاهزًا ، انقر فوق الزر في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة لتدوير المحرك. نظرًا لأننا نستخدم زر التبديل ، فسوف يتحرك محرك السائر باستمرار في اتجاه عقارب الساعة حتى نضغط على الزر مرة أخرى. وبالمثل ، بالضغط على زر التبديل بعكس اتجاه عقارب الساعة ، يبدأ المحرك بالدوران في عكس اتجاه عقارب الساعة حتى نضغط على الزر مرة أخرى.