في هذا الدرس سوف نتعلم طريقتين للتحكم في محركات السيرفو عن طريق مكتبة الـ Servo، في الطريقة الأولى سنتعرف على طريقة التحكم في السيرفو بواسطة مقاومة متغيرة بينما في الطريقة الثانية سنتعلم كيف يمكننا تحريك السيرفو بزاوية 180 درجة لليمين و لليسار.
تختلف متطلبات الطاقة للسيرفو اعتمادًا على الحجم والحمل الذي يقع على المحرك. يتطلب محرك سيرفو شائع مثل Feetech Mini Servo Motor ما بين 4.8 - 6 فولت عند 5 - 6 مللي أمبير في وضع الخمول. لا يتطلب الأمر الكثير من الطاقة للوقوف ساكناً. ولكن بمجرد أن يبدأ المحرك في التحرك، فإنه يبدأ في استخدام المزيد من الطاقة، ويحصل على هذه الطاقة عن طريق سحب المزيد من التيار من مصدر الطاقة.
إذا تعرض المحرك لأحمال أثقل مثل الوزن الزائد أو جسم يعيق الحركة، فمن الطبيعي أن يحتاج إلى استخدام المزيد من الطاقة لتحريك العائق، ونتيجة لذلك يزداد إستهلاك التيار. يمكن أن يصل إستهلاك التيارللمحرك المرتبط أعلاه إلى 800 مللي أمبير.
إن سحب التيار العالي هذا ليس آمنًا بشكل عام للسحب من لوحة Arduino. لتجنب إتلاف اللوحة، نحتاج إلى تشغيل السيرفو من خلال مصدر طاقة خارجي. يعتمد اختيار مصدر الطاقة الصحيح على السيرفو الذي تستخدمه، لذا تحقق دائمًا من المواصفات. انتبه جيدًا بشكل خاص إلى:
لتشغيل سيرفو 4.8 - 6 فولت، يمكنك استخدام محول تيار متردد 5 فولت 1 أمبير، وقطع الكابل، وتوصيل الأسلاك بالسيرفـو باستخدام على سبيل المثال. لوحـة التجارب.
إذا كان مشروعك يحتاج إلى التحرك بحرية دون توصيله بمنفذ طاقة، فيمكنك أيضًا اختيار البطاريات لتشغيل السيرفو. إذا كنت بحاجة إلى 5 فولت بالضبط، فيمكنك استخدام بطاريتين Li-Ion 18650 مع محول خافض للجهد Step Down Converter. هناك حاجة إلى المحـول الخافض لأن بطاريات 18650 Li-Ion ستمنحك حوالي 7.4 فولت. يعتمد الحد الأقصى للتيار على البطارية المحددة ولكن معظمها مصمم لإخراج أعلى من 1 أمبير وهو ما يكفي لتشغيل محركات السيرفو الصغيرة.
يوصى باستخدام المكثفات لتشغيل محركات السيرفو. فهي تساعد على استقرار مصدر الطاقة، وتقليل انخفاض الجهد، وتقليل الضوضاء الكهربائية. قد تختلف قيم المكثف المحددة بناءً على متطلبات محرك السيرفو، ولكن تضمينها يعد ممارسة جيدة لتحسين الأداء والموثوقية.
تحتوي محركات السيرفو على ثلاثة أسلاك: الطاقة والأرضي والإشارة. عادةً ما يكون سلك الطاقة باللون الأحمر، ويجب توصيله بالقطب الموجب (+) لمصدر الطاقة لديك. عادة ما يكون السلك الأرضي أسود أو بني ويجب توصيله بالقطب السالب (-) لمصدر الطاقة. عادةً ما يكون طرف الإشارة أصفر أو برتقالي ويجب توصيله بمنفذ PWM الموجود على اللوحة. في هذه الأمثلة، هوالمنفذ رقـم 9.
قم بتوصيل المقاومـة المتغيرة Potentiometer بحيث يتم توصيل طرفيها الخارجيين بالطاقة (+5 فولت) والأرضي، ويكون الطرف الأوسط متصلاً بـ A0 على اللوحة. ثم قم بتوصيل محرك السيرفو كما هو موضح في الدائرة التالية.
#include <Servo.h>
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); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
قم بتوصيل محرك سيرفو كما هو موضح في الدائرة التالية.
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
المختــرع المجنــون © جميـــع الحقــوق محفوظــة