
برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
برمجة االردينو للسيطرة على الحركة
الدورانية الزاوية لمحرك سيرفو
Motion control of servo
motor using Arduino

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
:مقدمة
-
يعتبر محرك السيرفو اداة مهمة لتدوير
موضع الذراع او
اي
جهاز اخر
يستوجب
ال
دوران
ب
زاوية
معينة كما
هو موضح
في ال
شكل
(
1
)
. اضافة الى ذلك ف
إ
ن محرك السيرفو
يتكون
من محرك تيار
مستمر ومعشق الى مسنن لكي يدور الذراع بزاوية معينة كما
هو موضح
في ال
شكل
(
2
).
( الشكل
1
) يوضح محرك السيرفو
(الشكل
2
) يوضح مكونات محرك السيرفو

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
:الهدف
برمجة االردينو للسطيرة على دوران ذراع المحرك
بشكل مستمر ورجوعه الى الموضع االول
وكذلك
اس
تخدام المقاومة المتغيرة لتدوير
المحرك
بزاوية معينة تتناسب مع تغير المقاومة وذلك
عن طريق
است
خ
دام
IDE
الخاص ببرمجة لوحة االردوينو
لكتابة برنامج لتدوير الذراع
بزاوي
ة
1081
وكذلك
كتابة برنامج اخر
لتدوير الذراع بزوايا متغيرة
عن طريق
است
خ
دام مقاومة متغيرة
Potentiometer)
() كما هو موضح بالشكل
3
.)
(الشكل
3
.) يوضح دائرة ربط محرك السيرفو مع المقاومة المتغيرة
المتطلبات و
: المكونات
1
-
حاسوب شخصي يحتوي على البيئة البرمجية الخاصة باالردوينو
IDE

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
2
-
محرك سيرفو
.
3
-
لوحة ارد
و
ينو
.

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
4
-
لوحة تجارب
5
-
اسالك توصيل
.
6
-
مقاومة متغيرة
.

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
:خطوات العمل
-
1
-
يتم ربط
لوحة
االردينو الى محرك السيرفو كما في الصورة التالية
.
علما ان المحرك
يحتوي على ثالثة اسالك توصيل
اذ
يربط
السلك االحمر الى
5
فولت واالسود
يربط الى
اال
رضي واالصرر
يمثل
أشارة السيطرة ويربط
الى
ال
منرذ رقم
9
.للوحة االردوينو
2
-
( فتح البيئة البرمجية لالردوينو
Arduino IDE
)
.
3
-
ربط لوحة االردوينو مع الحاسوب بواسطة كيبل ال
USB
.
4
-
تحديد نوع االردوينو من خالل ال
(Arduino IDE)
وفي هذه التجربة سيكون
UNO
.
5
-
كتابة كود برمجي
لتدوير محرك السيرفو بزاوية
1081
والعودة الى الصرر
كما يلي
.
#include
<Servo.h>
int
servoPin
=
9
;
Servo
servo
;
int
angle
=
0
; // servo position in degrees
void
setup
()
{

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
servo
.
attach
(
servoPin
);
}
void
loop
()
{
// scan from 0 to 180 degrees
for
(
angle
=
0
;
angle
<
180
;
angle
++)
{
servo
.
write
(
angle
);
delay
(
15
);
}
// now scan back from 180 to 0 degrees
for
(
angle
=
180
;
angle
>
0
;
angle
--)
{
servo
.
write
(
angle
);
delay
(
15
);
}
}
6
-
اختبار الكود البرمجي من خالل ال
(Arduino IDE)
. وتعديل االخطاء ان وجدت
7
-
رفع الكود البرمجي من خالل ال
(Arduino IDE)
. الى لوحة االردوينو وتنريذ البرنامج

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
البرنامج الثاني
كتابة برنامج لتدوير المحرك بواسطة
المقاومة المتغيرة
(pot.)
.
في هذه ال
خ
طوة يتم ربط
الطرف
الوسطي للمقاومة المتغيرة الى
المنرذ
A1
ضمن لوحة االردوينو
مع ربط الطرفين االخريين للمقاومة
المتغيرة الى
المنرذين
5
فولت و
اال
رضي
ضمن لحة االردوينو
ايضا
وبذلك يتم تدوير المحرك بالقيمة الماحوذة من المقاومة المتغيرة
عن طريق برمجة االرد
وينو
:بالبرنامج االتي
#include
<Servo.h>
int
potPin
=
0
;
int
servoPin
=
9
;
Servo
servo
;
void
setup
()
{
servo
.
attach
(
servoPin
);
}
void
loop
()
{
int
reading
=
analogRead
(
potPin
); // 0 to 1023
int
angle
=
reading
/
6
; // 0 to 180-ish
servo
.
write
(
angle
);
}

برمجة االردينو للسيطرة على الحركة الدورانية الزاوية لمحرك سيرفوا
د.عبداالله خضر
محمود
مختبر السيطرة
:تمارين
-
1
-
اذكر االيعازات الخاصة
بالحلقات المتكررة والذي ينرذ معادلة جبرية خالل الحلقة
م
ع
.توضيح معامالت هذه االيعازات
2
-
كتابة كود برمجي لتدوير محرك
السيرفو
عن طريق مرتاح بوش بوتم
بزاويا مختلر
.ة
3
-
هل يمكن
السيطرة على م
ح
رك
ا
لتيار
المستمر
بواسطة مقاومة متغيرة
(
potentiometer
)
اذا؟
؟كان ممكننا كيف يتم ذلك
(اذكر الكود البرمجي الخاص بالمحرك
مع العدد الالزمة
).