بسم الله الرحمن الرحيم
بعد ان انتهينا من سلسلة تعلم الأردوينو التاسيسية وانتهينا ايضا من سلسلة الحساسات الأساسية
سنبدأ اليوم بسلسلة جديدة وهى الدروس المتقدمة الخاصه بالأردوينو
ولكن ان كنت لم تتطلع على الدروس السابقة يمكنك الإطلاع عليها من هنا
سنناقش اليوم احد انواع المواتير الذي يعد من المواتير المهمه
الموتور الخطوى او stepper motor
محرك خطوة بخطوة هو محرك كهربائي يستخدم في الآلات الصغيرة التي تحتاج لدقة في تحكم بمحركاتها مثل الطابعة cnc
و من أهم ميزات هذا النوع من المحركات انه يمكن التحكم في
عدد
وسرعة دوراته وزاوية التوقف بدقة.
يكون له العديد من الأنواع يختلف كل نوع من كمية الطاقة التى
يحتاجها والوزن الذي يستطيع تحمله
يحتوى الموتور على 5 اسلاك وهناك طريقتان للتوصيل
الطريقة الأولى وهى استخدام درايفر خاص به وهذه الطريقة توفر
لك العديد من الإمكانية وهى انك يمكنك التحكم فى سرعه الموتور
مع التحكم فى اتجاهه
او استخدام شريحة h-bridge الخاصه بمواتير dc ولكن هذه
الطريقة لن توفر لك امكانية التحكم فى السرعه
ويمكن ايضا استخدام شريحة l239d فى التحكم به
التجربة :
سنقوم بعمل تحكم للموتور الستيبر فى اتجاه وسرعه دورانه
باستخدام مقاومات متغيرة
التوصيلات :
الكود :
فى البداية من اجل التعامل مع هذا النوع من المواتير يجب استخدام
مكتبة خاصه تسمي Stepper.h
#include <Stepper.h>
const int stepsPerRevolution = 200;
Stepper stepper(stepsPerRevolution,8,9,10,11);
const int res1 = A0;
const int res2 = A1;
int val_spe;
int val_mov;
void setup() {
}
void loop() {
val_spe=analogRead(res1);
val_mov=analogRead(res2);
val_spe = map(val_spe,0,1023,0,100);
if(val_spe > 0){
stepper.setSpeed(val_spe);
}
if(val_mov > 600){
stepper.step(val_mov);
}
if(val_mov < 600){
stepper.step(-val_mov);
}
}
فى البداية يجب استدعاء المكتبة كما قلنا من قبل
ثم يجب تحديد عدد لفات الموتور فى الثانية غالبا ما تكون 200
const int stepsPerRevolution = 200;
من ثم تعريف الموتور داخل المكتبة
نقوم بكتابة اسم المكتبة ثم اسم الكائن الذي من خلاله سنصدر الأوامر للموتور
ثم نفتح قوس ونكتب منافذ الدرايفر التى تم توصيلها بالأردوينو
Stepper stepper(stepsPerRevolution,8,9,10,11);
من ثم القراءة من المقاومات مع عمل عملية تسوية لها
من ثم القراءة من مقاومة المتغيرة الخاصه بالسرعه وتحديد سرعه الموتور من طريق هذه المقاومة
وعمل نفس هذا السيناريو على المقاومة الأخرى
وهذا هو كود التحكم بسرعه واتجاه دوران موتور ستيبر باستخدام الأردوينو ومقاومات متغيرة
تصميم وبرمجة : بلال حسان سعدى