الاردوينو

محرك السيرفو والاردوينو

سنقوم في هذا الدرس بتوصيل محرك سيرفو مع لوحة التحكم الاردوينو ، وسنقوم بتنفيذ مشروعين ، أول مشروع هو التحكم بزاوية محرك سيرفو تلقائيًا بواسطة زاوية مرجعية يطلق عليها Sweep والثاني مشروع التحكم في محرك سيرفو باستخدام مقاومة متغيرة (potentiometer) ولكن من فضلك من قبل قراءة هذا الدرس يفضل قراءة درس محرك السيرفو. من أجل هذه المشاريع ، سنحتاج إلى أي لوحة Arduino وأي محرك يدعم 5 فولت DC وأحدث إصدار من برنامج الاردوينو Arduino Software IDE. إذا كنت تستخدم الإصدارات القديمة ، فستحتاج إلى تنزيل مكتبة السيرفو.

الحركة التلقائية لمحرك السيرفو Sweep

سوف نكتب برنامجا للتحكم في زوايا المحرك بحيث يتحرك من الزاوية 0 إلى 180 في كل خطوة تساوي 2 درجة ، ثم يعود من 180 إلى 0 ، مبدأ عمل السيرفو هو التحكم في هذه الزوايا. تحتوي محركات السيرفو على ثلاثة اطراف: 5V للطاقة ، GND الأرضي ، والإشارة. يكون سلك الطاقة باللون الأحمر عادةً ويكون متصلًا بالطرف 5V في الاردوينو. السلك الأرضي لونه عادة أسود أو بني متصل بدبوس أرضي على الاردوينو ايضا. يكون طرف الإشارة باللون الأصفر والبرتقالي في بعض الأحيان ، حيث سنقوم بتوصيل الإشارة إلى الرقم الرقمي 5 أو أي PWM على الارديونو . لبناء هذا المشروع ، نحتاج الى المكونات التالية:

المكونالعدد
اردينو اونو آر 3 – Arduino UNO R31
محرك سيرفو – اي نوع يدعم 5 فولت1
لوحة توصيل صغيرة (اختياري)1
اسلاك توصيل3

الرسم التخطيطي

في هذا المشروع ، سوف نقوم بتوصيل محرك سيرفو بالمخرج الرقمي D5 الذي يدعم PWM ، سوف تكون توصيلات محرك السيرفو مع الاردوينو على النحو التالي:


الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتوصيل الاردوينو بجهاز الكمبيوتر باستخدام USB ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

#include <Servo.h> // select servo library

Servo sweeepservo;  // create servo motor parameter 

int first_postion = 0;    // variable store the for servo motor position

void setup() {
  sweeepservo.attach(5); 
}

void loop() {
  for (first_postion = 0; first_postion <= 180; first_postion += 2) { 

    sweeepservo.write(first_postion); 
 
    delay(25);    // waits 25ms for the servo to reach next position
  }
  for (first_postion = 180; first_postion >= 0; first_postion -= 2) { 
    sweeepservo.write(first_postion);  
    delay(25); 
  }
}

التحكم في محرك السيرفو باستخدام المقاومة المتغيرة (Potentiometer)

في المشروع الثاني ، سوف نتحكم في محرك سيرفو باستخدام الاردوينو و والمقاومة المتغيرة ، نحتاج إلى إضافة المقاومة المتغيرة  للمكونات في الجدول أعلاه. ولكن ما هي المقاومة المتغيرة او مجزء الجهد؟

ببساطة انها مقاومة متغيرة ، لكن يمكن تغيير قيمتها يدويًا باستخدام المقبض بحيث زيادة المقاومة ستقلل من التيار ، وتستخدم هذه القطعة على سبيل المثال في التحكم في مستوى الصوت في الراديو ، في مشروعنا سوف نستخدمها للتحكم في درجة محرك السيرفو. ولكن هناك العديد من الأنواع ، بعضها يتحرك بشكل خطي وبعضها يتحرك في شكل دائري ، الصورة التالية توضح بعض الأنواع:

في مشروعنا ، يمكنك اختيار أي نوع لكن يجب أن تكون قيمتها 10 كيلو أوم ، ومع ذلك ، نوصيك باستخدام النوع الدائري لأنه أكثر مرونة ويمنح دقة اكبر في التحكم ، مثل هذا النوع:

مقاومة متغيرة دائرية

الرسم التخطيطي

في هذا المشروع ، سوف نقوم بتوصيل محرك السيرفو بالمخرج الرقمي D10 الذي يدعم PWM ، وسنقوم بتوصيل المقاومة المتغيرة إلى المدخل التناظرية او التماثلي (A1). توصيلا محرك السيرفو والمقاومة المتغيرة مع الاردوينو سوف تكون على النحو التالي:


الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتوصيل الاردوينو بجهاز الكمبيوتر باستخدام USB ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

#include <Servo.h> // add servo library

Servo myservo; // create servo object to control a servo

int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); 
delay(15); 
}

الآن قم بتغيير قيم المقاومة المتغيرة (في اتجاه عقارب الساعة أو عكس عقارب الساعة) وشاهد تحرك محركات السيرفو، ويمكنك تعديل الكود لإضافة المزيد من محركات السيرفو.

ملاحظة: إذا كنت تستخدم محرك سيرفو يعمل على 5 فولت ، فلن تحتاج إلى وحدة طاقة خارجية ، لأن كيبل ال USB من الكمبيوتر قادر على تزويدك بالطاقة الكافية ، لذلك لا تقلق بشأن الطاقة.

اترك تعليقاً

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock