تحكم في محرك الـسيرفو باستخدام الاردوينو

نحتاج في بعض الأحيان  إلى التحكم في حركة الجسم بزاوية وسرعة محددين.


يسمح لك محرك السيرفو بتحقيق ذلك بسهولة. يمكنك استخدامه في العديد من التطبيقات، مثل فتح الباب وإغلاقه عن بُعد.


في هذا الدرس، سوف نستخدم الاردوينو للتحكم في محرك السيرفو بحيث يتحرك عبر 180 درجة ذهابًا وإيابًا.


دعونا نكتشف المزيد معا!


مقدمة


محرك السيرفو هو مجرد محرك DC مع بعض التعديلات. عندما تنظر إليه، ستلاحظ أن به عدة تروس ودائرة إلكترونية.


توفر هذه التحسينات للمحرك قدرات اضافية، مثل التحكم الدقيق في سرعة العمود واتجاهه. كما أنه يمنح المحرك القدرة على معرفة الوضع الحالي لعمود الحركة.


تُستخدم محركات الـسيرفو في مجموعة متنوعة من التطبيقات، بما في ذلك:

- الروبوتات

- كاميرات مراقبة

- أنظمة الطاقة الشمسية (لتتبع ضوء الشمس)


الحصول على القطع


ستحتاج إلى المكونات التالية لهذا المشروع، يمكنك شراؤها من متجر ڤولتات.

Sale Off
Voltaat Arduino Uno R3 (Voltaat Version)
45 QAR
Sale Off
Voltaat Positional Rotation Servo - Generic (Micro Size)
20 QAR
Sale Off
Voltaat Jumper Wires - Male to Male (40 Pack)
10 QAR

التوصيل


توضح الصورة التالية كيفية توصيل الأسلاك بين محرك السيرفو والاردوينو. بمجرد توصيل محرك السيرفو والاردوينو ببعضهما البعض، قم بتوصيل الاردوينو بجهاز الكمبيوتر الخاص بك باستخدام وصلة USB.



التوصيل من محرك السيرفو:

• Arduino GND pin ← Servo GND pin

• Arduino 5V pin ← Servo VCC pin

• Arduino pin 9 ← Servo signal pin


البرمجة


تتمثل وظيفة نص البرمجة هذا في التحكم في محرك السيرفو، مما يجعله يتحرك ذهابًا وإيابًا بزاوية 180 درجة، وعرض الموضع الحالي من خلال شاشة التواصل وعرض البيانات.


لكي يعمل نص البرمجة بشكل صحيح، تحتاج إلى تنزيل مكتبة محرك السيرفو. المكتبات عبارة عن ملفات يمكنك تنزيلها ونسخها إلى ملفات برنامج Arduino IDE حتى يتمكن الاردوينو من التعرف على أجهزة استشعار ومكونات مختلفة. يمكنك تنزيل ملفات المكتبة من قسم المصادر ثم تثبيتها باتباع هذا الدرس.


Servo motor Library


الكود بسيط؛ ما عليك سوى اتباع التعليقات والتعليمات الموجودة في النص البرمجي وستتمكن من فهمها.



/*
Voltaat learn (http://learn.voltaat.com)
Link for full tutorial: https://bit.ly/3uJypb5
Link for libraries: https://bit.ly/3VClW5w
Tutorial: Sweep the servo motor shaft with Arduino
The function of this sketch is to control the servo motor,
making it sweep back and forth across 180 degrees,
and print the current position through the serial monitor.
Connections from the servo motor:
• Servo GND pin→ Arduino GND pin
• Servo VCC pin→ Arduino 5V pin
• Servo signal pin → Arduino pin 9
*/

//Servo motor library
#include < Servo.h >

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

//Variable to store the servo position
int pos = 0;

//Commands inside void setup run once
void setup(){
  //Start the serial monitor at 9600 baud rate (9600 bits per second)
  Serial.begin(9600);
  //Attaches the servo on pin 9 to the servo object
  myservo.attach(9);
}

//Commands inside void loop run forever
void loop(){
  //Goes from 0 degrees to 180 degrees
  for(pos = 0; pos <= 180; pos += 1)
  {
    //Tell the servo to go to position in variable 'pos'
    myservo.write(pos);
    //Print to serial monitor
    Serial.print("Servo Motor Current Position: ");
    Serial.println(pos);
    //Waits 15ms for the servo to reach the position
    delay(15);
  }

  //Goes from 180 degrees to 0 degrees
  for(pos = 180; pos >= 0; pos -= 1)
  {
    //Tell the servo to go to position in variable 'pos'
    myservo.write(pos);
    //Print to serial monitor
    Serial.print("Servo Motor Current Position: ");
    Serial.println(pos);
    //Waits 15ms for the servo to reach the position
    delay(15);
  }
}

قم باختباره




بعد ان قد قمت بتوصيل محرك السيرفو بشكل صحيح إلى الاردوينو كما أوضحنا في قسم التوصيل، بالإضافة إلى تحميل نص البرمجة على لوحة الاردوينو الخاصة بك.


يمكنك الآن الوصول إلى شاشة التواصل وعرض البيانات في Arduino IDE عن طريق النقر فوق رمز العدسة المكبرة في الزاوية اليمنى العليا.



نافذة التواصل وعرض البيانات هي أداه رائعة في Arduino IDE تمكنك من إجراء اتصال بين جهاز الكمبيوتر الخاص بك والاردوينو. تسمح بإرسال أوامر واستقبال البينات المختلفة وتكون مفيدة في عرض البيانات مثل القراءات من الحساسات المختلفة.


كما هو موضح في الصورة التالية، تعرض شاشة التواصل الوضع الحالي لعمود محرك السيرفو بالدرجات. ستلاحظ أيضًا حركة محرك السيرفو الخاص بك.


يجب عليك أيضًا التأكد من أنك اخترت معدل buad الصحيح (9600) كما هو محدد في نص البرمجة.


المصادر


Arduino Code

Servo motor Library

Fritzing Wiring file

دروس أخري


In this tutorial, we will use the PIR sensor to send a message to your computer when someone enters your house.


A soil moisture sensor is a device that measures the amount of water in the soil. The sensor consists of two metal probes that can be inserted into the soil to measure the moisture levels.

Most of us are familiar with the switches used in household devices. A relay is a type of switch that can be connected to an Arduino or any other microcontroller.