كيفية التحكم في محرك سيرفو باستخدام Arduino

Kyfyt Althkm Fy Mhrk Syrfw Bastkhdam Arduino



أجهزة المحركات هو نوع من الأجهزة الكهربائية التي يمكنها تغيير أو تدوير موضع الجسم بدقة كبيرة. في البداية ، تم استخدامها للتحكم في أجنحة طائرات RC بعد لحظات ، وشقوا طريقهم إلى الروبوتات والروبوتات البشرية والعديد من مشاريع الأتمتة. على عكس المحركات السائر ، فإن حركتها محدودة بين 0o إلى 180o.

عادةً ما تحتوي المحركات المؤازرة على أذرع يمكن التحكم فيها باستخدام Arduino. تتكون المحركات المؤازرة من نظام تحكم يوفر استجابة حول الوضع الحالي لعمود المحرك ، تسمح هذه التغذية الراجعة بالتحرك بدقة كبيرة.

محرك مؤازر Pinout

عادةً ما تحتوي معظم محركات المؤازرة على ثلاثة دبابيس:







  • دبوس Vcc (عادة أحمر 5 فولت)
  • دبوس GND (أسود عادة 0V)
  • إدخال إشارة دبوس (تلقي إشارة PWM من Arduino)



عمل محرك سيرفو

يمكننا التحكم في محرك سيرفو عن طريق توصيل دبوس Vcc بـ 5V ودبوس GND بـ 0V. على طرف اللون الأصفر ، نقدم ملف PWM إشارة تتحكم في زاوية الدوران للمحرك المؤازر. عرض إشارة PWM يعطينا الزاوية التي يدور بها المحرك ذراعه.



إذا نظرنا في ورقة البيانات الخاصة بمحركات المؤازرة ، فسنحصل على المعلمات التالية:





  • الفترة الزمنية لإشارة PWM
  • العرض الأدنى لـ PWM
  • أقصى عرض لـ PWM

كل هذه المعلمات محددة مسبقًا في مكتبة Arduino Servo.

محركات مؤازرة مع اردوينو

من السهل جدًا التحكم في المحركات المؤازرة باستخدام Arduino ، وذلك بفضل مكتبة المؤازرة مما يساعدنا على تخصيص الكود الخاص بنا وفقًا للحاجة ويسمح لنا بتدوير ذراع المؤازرة بالزاوية المطلوبة.



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

  • إذا كان عرض إشارة PWM = WIDTH_MAX ، فسيتم تدوير المؤازرة إلى 180 درجة
  • إذا كان عرض إشارة PWM = WIDTH_MIIN ، فسيتم تدوير المؤازرة إلى 0o
  • إذا كان عرض إشارة PWM يقع بينهما WIDTH_MAX و WIDTH_MIN ، سوف يدور محرك سيرفو بين 0 و 180 درجة

يمكننا إنشاء إشارة PWM المرغوبة على بعض دبابيس Arduino. سيتم إعطاء إشارة PWM عند دبوس إشارة الإدخال لمحرك المؤازرة. توصيل الدبابيس المتبقية من المؤازرة بجهد 5 فولت و GND من Arduino.

كيفية التحكم في محرك سيرفو باستخدام Arduino

سأشرح هنا كيف يمكننا توصيل وبرمجة محرك سيرفو الخاص بنا باستخدام Arduino. كل ما تحتاجه هو:

  • اردوينو UNO
  • كابل USB ب
  • أجهزة السيارات
  • أسلاك العبور

كيفية برمجة المؤازرة مع اردوينو

فيما يلي بعض الخطوات البسيطة:

الخطوة 1: قم بتضمين مكتبة مؤازرة محددة مسبقًا:

# تضمن < المؤازرة >

الخطوة 2: إنشاء كائن مؤازر:

مؤازرة myservo.

نصيحة: إذا كنت تتحكم في أكثر من محرك مؤازر ، فيجب عليك إنشاء المزيد من كائنات المؤازرة:

مضاعفات myservo1 ؛
مضاعفات myservo2 ؛

الخطوه 3: قم بتعيين دبوس التحكم (9) على Arduino Uno الذي يرسل إشارة PWM إلى منفذ إشارة الإدخال من المؤازرة:

myservo.attach ( 9 ) ؛

الخطوة الرابعة: قم بتدوير زاوية محرك سيرفو إلى القيمة المطلوبة على سبيل المثال 90 درجة:

myservo.write ( نقاط البيع ) ؛

كود اردوينو

افتح مثال برنامج محرك سيرفو من ملف> مثال> أجهزة> مسح ، ستفتح نافذة جديدة توضح لنا مخطط المؤازرة الخاص بنا:

# تضمين

مؤازرة myservo. // تم إنشاء كائن مؤازر إلى عن على التحكم في محرك سيرفو
نقاط البيع int = 0 ؛ // لتخزين موضع المؤازرة يتم إنشاء متغير جديد
الإعداد باطل ( ) {
myservo.attach ( 9 ) ؛ // هذا سوف تعيين دبوس اردوينو 9 إلى عن على خرج PWM
}
حلقة فارغة ( ) {
إلى عن على ( نقاط البيع = 0 ؛ نقاط البيع = 0 ؛ نقاط البيع - = 1 ) { // يذهب من 180 إلى 0 درجات
myservo.write ( نقاط البيع ) ؛ // أخبر المؤازرة بالذهاب إلى موضع 'pos'
تأخير ( 5 ) ؛ // ينتظر إلى عن على 5 مللي حتى يمكن أن تصل المؤازرة إلى الموضع
}
}

بمجرد تجميع البرنامج وتحميله ، سيبدأ محرك المؤازرة في الدوران ببطء من وضع البداية من 0 درجة إلى 180 درجة ، درجة واحدة في كل مرة تمامًا مثل الخطوات. عندما ينتهي المحرك من الدوران 180 درجة ، سيبدأ دورانه في الاتجاه المعاكس نحو نقطة البداية ، أي 0 درجة.

المخططات

كيفية التحكم في محرك سيرفو باستخدام مقياس الجهد

يمكننا أيضًا التحكم في موضع محرك سيرفو يدويًا. للقيام بذلك نحتاج إلى ملف مقياس فرق الجهد . يحتوي مقياس الجهد على ثلاثة دبابيس. قم بتوصيل المسامير الخارجية بـ 5V Vcc و GND من Arduino والوسط إلى A0 pin على لوحة Arduino.

كيفية برمجة المؤازرة باستخدام مقياس الجهد

معظم مخطط مقياس الجهد هو نفس المثال السابق. الاختلاف الوحيد هو متغير جديد فال و ثانوي يتم تعريفه قبل قسم الإعداد والحلقة من التعليمات البرمجية.

int potpin = A0 ؛
int فال؛

في قسم الحلقة ، يتم استخدام الدبوس التناظري A0 لقراءة قيم الجهد مع الوظيفة القراءة التناظرية () . تحتوي لوحات Arduino على ADC 10 بت (محول تناظري إلى رقمي) مما يمنحنا قيمًا تتراوح بين 0 و 1023 اعتمادًا على موضع مقياس الجهد:

val = analogRead ( ثانوي ) ؛

أخيرًا ، لقد استخدمنا خريطة() تعمل على إعادة تعيين الأرقام من 0 إلى 1023 وفقًا لزاوية Servo كما نعلم أن محركات Servo يمكن أن تدور فقط بين 00 و 1800.

فال = خريطة ( فال 0 و 1023 و 0 و 180 ) ؛

كود اردوينو

افتح رسم المقبض المتاح في Arduino IDE ، انتقل إلى ملفات> أمثلة> أجهزة> مقبض . ستفتح نافذة جديدة توضح لنا رسم مقبض الباب المؤازر:

# تضمين
مؤازرة myservo. // إنشاء اسم كائن مؤازر myservo
int potpin = A0 ؛ // تحديد دبوس التناظرية إلى عن على مقياس فرق الجهد
int فال؛ // عامل أيّ إرادة قرأ قيم دبوس التناظرية إلى عن على مقياس فرق الجهد

الإعداد باطل ( ) {
myservo.attach ( 9 ) ؛ // دبوس محدد 9 إلى عن على إشارة إدخال PWM من المؤازرة على Arduino
}
حلقة فارغة ( ) {
val = analogRead ( ثانوي ) ؛ // يقرأ القيمة من مقياس الجهد ( قيمة بين 0 و 1023 )
فال = خريطة ( فال 0 و 1023 و 0 و 180 ) ؛ // قياس القيمة لاستخدامها مع المؤازرة ( قيمة بين 0 و 180 )
myservo.write ( فال ) ؛ // يحدد موضع المؤازرة بقيمة متدرجة
تأخير ( خمسة عشر ) ؛ // ينتظر إلى عن على المؤازرة للوصول إلى الموضع
}

سيساعدنا الكود أعلاه على التحكم في عمود محرك سيرفو باستخدام مقياس الجهد ، وسوف يدور العمود بين 0 و 180 درجة. يمكننا أيضًا الحفاظ على السرعة جنبًا إلى جنب مع اتجاه المؤازرة التي تستخدمها.

مخطط الرسم البياني

كم عدد المحركات المؤازرة التي يمكنني توصيلها مع Arduino؟

الحد الأقصى لعدد محركات المؤازرة التي يمكن لـ Arduino UNO التعامل معها يصل إلى 12 مع مكتبة Arduino لأجهزة المؤازرة ، والحد الأقصى من 48 الماكينة يمكن توصيله بلوحات مثل Mega.

نصيحة: يمكننا تشغيل المؤازرة مباشرة باستخدام تيار Arduino ولكن تذكر ما إذا كانت محركات المؤازرة ترسم أكثر من 500 مللي أمبير ثم يمكن إعادة تعيين لوحة Arduino الخاصة بك تلقائيًا وفقدان الطاقة. يوصى دائمًا باستخدام مصدر طاقة مخصص لمحركات مؤازرة.

استنتاج

في هذا البرنامج التعليمي ، قمنا بتغطية آلية التحكم في المحركات المؤازرة باستخدام Arduino. لقد غطينا أساسيات التحكم في موضع المؤازرة والسرعة باستخدام مقياس الجهد. الآن لديك فكرة عن المؤازرة وإمكانيات الروبوتات الخاصة بك ، ومشاريع RC والأتمتة باستخدام المؤازرة لا حصر لها.