درس إحترافي عدد 9:محرّك كهربائي السيرفو (Servomoteur)

من بين أنواع المحرّكات التي تشتغل بالتيّار الكهربائي مستمر و منخفض نجد محرّك السيرفو Servomoteur .
يمتاز هذا المحرّك بالدقّة في زاويّة الدواران من (0° إلى 180°)الذي سنعتمده في هذا الدرس
و كما هناك نوع آخر زاويّة دوارانه من (0° إلى 380°)
من بين المشاريع التي يمكن أن يكون فيها هذا النوع من المحرّكات نجد (حاجزللسكة القطارأو لعبة سيّارة لتغيير إتجاه السير…)

يحتوي محرّك السيرفو Servomoteur على 3 اقطاب
– قطب أرضي يركّب في السالب لمصدر التغذية
-قطب التغذية يركّب في الموجب لمصدر التغذية
-و قطب لتحديد الزّاوية (يركّب غالبا في المنافذ PWM للوحة الأردوينو(المنفذ 3 و 5 و 6 و9و10و11)

ملاحظة : لتسهيل الدرس سوف نركّب محرّك السيرفو مباشرة مع لوحة الأردويو.
بما أنّه من المكوّنات الذي تستهلك طاقة كهربائيّة يجب أن يركّب
مع مكوّن وسيط مثل Transistor nMos (MOSFET) مثل في الدرس السّابق

الدّارة الكهربائيّة

و في ما يلي الدّارة الكهربائيّة المتكوّنة من لوحة أردوينو و محرّك السيرفو

يمكن برمجة محرّك السيرفو Servomoteur و يطول البرنامج و قد لا نتحصّل على الدقّة المطلوبة.فهناك من المبرمجين المحترفين من أنجزوا هذا البرنامج بطرقة محترفة و تركوا لنا مكتبة لإستخداها بكل بساطة

بالذهاب إلى برمجيّة أردوينو التي قمنا بتثبيتها سابقا من الموقع الرسمي لأردوينو
نختار
Fichier -> Exemples -> Servo ->Knob
كما هو مبيّن في الصّور التاليّة

نتحصّل على

كود البرنامج

#include <Servo.h>
Servo myservo;
int pos = 0;
void setup() {
myservo.attach(3);
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) {

myservo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15);
}
}

شرك الكود

#include <Servo.h>

إضافة مكتبة Servo.hو التي تحتوي على عدّة أسطرمن البرمجة و المخفيّة

Servo myservo;

إنشاء متغيّر myservo من نوع ىكائن (Objet) و لتحكّم في محرّك السيرفو
ملاحظة:إذا كان لنا أكثر من محرّك نقوم بالتعريف كل واحد منفصل عن الآخر مثال

Servo myservo1;
Servo myservo2;
Servo myservo3;

int pos = 0;

إنشاء متغيّرpos من نوع عدد صحيح و قيمته الأصليّة 0

void setup() {

خاص بالإعدادات و التعريفات

myservo.attach(3);

يتمّ تعريف المنفذ الذي سيتحكّم في المحرّك سيرفو
ملاحظة: إذاإستعملنا محرك سيرف 2 و قمنا بتعريفه كمتغير myservo2و المنفذ الذي سنتحكّم فيه 9
يصبح التعريفربه

myservo2.attach(9);

}

نهاية الإعدادات

void loop() {

بداية البرمجة

for (pos = 0; pos <= 180; pos += 1) {

حلقة تكرار مع تحديد pos كمتغير عدد صحيح من 0 إلى 180 بزيادة 1 في كل مرّة

myservo.write(pos);

إتجاه المحرّك سيرفو إلى درجة pos
و إذا كان لنا محرّك 2

myservo2.write(pos);

delay(15);

إنتظار 15 جزء من الثانية في كل مرّة و إلا تسارعت الدوران و لا نلاحظ شيء

}

نهاية التكرار

for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15);
}

نفس حلقة التكرار سابقة مع تغيير إنجاه الدواران من 180 إلى 0 درجة

}

نهاية البرمجة

يمكنك مشاهدة التمرين من الموقع TinKerCad

أكثر تفاصيل شاهد هذا الفيديو

تمرين

إنجاز دارة كهربائيّة تحتوي على لوحة أردوينو و محرّك سيرفو ومقاوم متغيّر 100 أوم
بتغييرنا إلى مقاومة المقاوم المتغيّر تتغيّر زاوية المحرك سيرفو

في ما يلي الدارة الكهربائيّة للتمرين

إخترنا منفذ 9 لتحكّم في المكرّك سيرفو وكما إخترنا مدخل التماثلي A3 لقراءة قيمة المقاوم المتغيّر

كود البرنامج

/*
Machghoul Samir
https://www.arduinopourleseleves.ovh
27-05-2020
*/
Servo mon_servo;
int An = 0;
int pos = 0;
void setup() {
mon_servo.attach(9);
}
void loop() {
An=analogRead(A3);
pos=An/1024.0*180.0;
mon_servo.write(pos);
delay(15);
}

شرح بعض الأكواد للبرنامج

/*
Machghoul Samir
https://www.arduinopourleseleves.ovh
27-05-2020
*/

يمكن وضع أسطر من التعليقات بين /*…………*/
ووضع سطر واحد فقط من التعليقات ………………………………….//
التعليقات لا تقرأ من خلال لوحة الأردوينو يمكن كتابة ما شئنا من الكلمات
وخاصة توضع التعليقات لتعريف للمستعمل الكود عن وظيفة البرنامج أو الإعدادات البرنامج أو كتابة إسم الكاتب البرنامج و طريقة التواصل (البريد الإلكتروني و الهاتف …


Servo mon_servo;
int An = 0;
int pos = 0;
void setup() {
mon_servo.attach(9);
}
void loop() {

An=analogRead(A3);

قراءة المنفذ َA3 من المقاوم المتغيّر

pos=An/1024.0*180.0;

البحث عن الزاوية(من 0 إلى 180 درجة) إنطلاقا من المدخل A3 من (0 إلى 1024)

mon_servo.write(pos);
delay(15);
}

إشتغال المحرّك و إتجاه إلى زاوية المحدّدة و إنتظار 0.015 ثانية لكل مرّة و نهاية البرنامج

يمكن مشاهدة التمرين على موقع TinKarCad

لأكثر تفاصيل شاهد هذا الفيديو

تمرين خاص

إضافة للتمرين الأخير شاشة عرض تظهر لنا زاوية المحرّك السيرفو
أوّل من يرسل إصلاح هذا التمرين هن خلال موقع TinKerCad سينشر إسمه (ها)و تمرينه(ها) هنا

أي إستفسار حول هذا الدرس أو إضافة أو تعليق أو الإجابة على هذا التمرين إضغط هنا