التحكم في محرك سيرفو باستخدام مقاوم متغير (بوتنشيوميتر) مع أردوينو

التحكم في محرك سيرفو باستخدام مقاوم متغير (بوتنشيوميتر) مع أردوينو

في هذا الدرس سنتعلم كيفية التحكم في محرك سيرفو باستخدام مقاوم متغير (بوتنشيومتر) مع لوحة أردوينو. يتيح لنا المقاوم المتغير ضبط زاوية السيرفو بسلاسة، مما يمنحنا تحكمًا في الوقت الحقيقي في موضعه. بنهاية هذا المشروع، سيكون لديك إعداد عملي يعرض قيمة المقاوم المتغير والزاوية المقابلة للسيرفو.

عند تدوير المقاومة المتغيرة يتغير مقدار زاوية محرك السيرفو من 0 إلى 180 درجة. سنستخدم المدخل التناظري في الأردوينو لقراءة قيمة المقاومة المتغيرة ثم نربط هذه القيمة بنطاق السيرفو باستخدام معادلة بسيطة. هذا المشروع وسيلة ممتازة لفهم كيفية عمل المدخلات التناظرية وكيفية التحكم في المحركات باستخدامها (في الفيديو عند 01:45).

شرح الأجهزة

لهذا المشروع نحتاج إلى لوحة أردوينو ومحرك سيرفو ومقاوم متغير (بوتنشيوميتر). يعمل المقاوم المتغير كمقاومة متغيرة، ويقدّم خرجًا جهديًا يتوافق مع موضعه. يُقرأ هذا الخرج عبر المدخل التناظري في لوحة الأردوينو، مما يتيح لنا تحديد مدى دوران محرك السيرفو.

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

تفاصيل ورقة البيانات

الشركة المصنعةمتنوعة
رقم القطعةسيرفو قياسي
جهد المنطق/الإدخال/الإخراج5 فولت
جهد التغذية4.8 - 6 فولت
تيار الإخراج (لكل قناة)حتى 1 أمبير
تيار الذروة (لكل قناة)حتى 2 A
إرشادات تردد PWM50 هرتز
عتبات منطقية للإدخال0.8 V (منخفض) / 2.0 V (مرتفع)
هبوط الجهد / RDS(عند التشغيل) / التشبع0.5 فولت
الحدود الحرارية85 درجة مئوية
حزمةالمقاس القياسي
ملاحظات / متغيراتمتوفر بأحجام وتصنيفات عزم دوران مختلفة

  • تأكد من أن مصدر الطاقة ضمن الحدود (4.8 - 6 فولت).
  • استخدم قيمة مقاومة مناسبة للمقاوم المتغير (10 kΩ موصى بها).
  • تحقق من قطبية التوصيلات لتجنب التشغيل العكسي.
  • كن حذراً من الحرارة؛ تأكد من أن السرفو ليس محمّلاً أكثر من اللازم.
  • اجعل الأسلاك قصيرة لتقليل التداخل.
  • استخدم مكثفات فك الارتباط عبر مداخل الطاقة عند الحاجة.
  • تحقق من أن المقاوم المتغير متصل بشكل صحيح بالدبوس التماثلي A0.

تعليمات التوصيل الكهربائي

Arduino wiring or servo motor with pot
Arduino wiring or servo motor with pot

لتوصيل المكونات، ابدأ بتوصيل المقاوم المتغير. يجب توصيل الدبوس الأوسط للمقاوم المتغير بالدبوس التناظريA0على الأردوينو. يجب توصيل الدبوس الأيسر بدبوس 5V على الأردوينو، ويجب توصيل الدبوس الأيمن بالأرضي (GND).

بعد ذلك، قم بتوصيل محرك السيرفو. يجب توصيل سلك الأرضي (عادةً أسود أو بني) للمحرك بدبوس GND على الأردوينو. ينبغي توصيل سلك الطاقة (عادةً أحمر) بدبوس 5V على الأردوينو. أخيراً، يجب توصيل سلك التحكم (غالباً أصفر أو أبيض) بدبوس رقمي9على الأردوينو. سيتيح هذا الإعداد للأردوينو التحكم في السرفو بناءً على موضع المقاومة المتغيرة.

Arduino Schemtic of wiring servo motor with pot

أمثلة على الكود وشرح خطوة بخطوة

دعونا نلقي نظرة على الأجزاء الرئيسية من الكود. أولاً، نقوم بتضمين مكتبة Servo وننشئ كائن سيرفو:

#include 
Servo myservo;  // create servo object to control a servo

يقوم هذا الكود بتهيئة محرك السيرفو ويجهزه للتحكم. الخطوة التالية تتضمن قراءة قيمة المقاومة المتغيرة:

int val = analogRead(potpin); // reads the value of the potentiometer

هنا، تُخزّن القيمة المقروءة من المقاوم المتغير في المتغيرval. ستكون القيمة بين 0 و1023، بما يتوافق مع موضع المقاوم المتغير. ثم نقوم بتحويل هذه القيمة إلى نطاق السيرفو:

val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo

يقوم هذا السطر بتحويل قيمة المقاوم المتغير إلى مدى مناسب لمحرك السيرفو. أخيرًا، نقوم بضبط السيرفو على الموضع المحسوب:

myservo.write(val); // sets the servo position according to the scaled value

يأمر هذا الأمر محرك السيرفو بالتحرك إلى الزاوية المحددة استنادًا إلى موضع المقاوم المتغير. يمكنك العثور على الكود الكامل المحمّل أسفل المقالة.

عرض توضيحي / ما الذي تتوقعه

عند تشغيل البرنامج، سيؤدي تدوير المقاومة المتغيرة إلى ضبط زاوية محرك السرفو بسلاسة. يجب أن ترى قيم الزاوية تُطبع في المراقب التسلسلي أثناء تدوير المقبض. إذا تصرف السرفو بشكل غير متوقع، فتحقق من التوصيلات، خاصة الوصلات إلى المقاوم المتغير والسرفو (في الفيديو عند 04:30).

يجب أن يستجيب محرك السيرفو فورًا لتغير موضع المقاومة المتغيرة. إذا لاحظت أي تأخر أو تقفّز في الحركة، فكر في تقليل زمن التأخير في الشيفرة لتحسين سرعة الاستجابة.

الصور

Arduino wiring or servo motor with pot
Arduino wiring or servo motor with pot
Arduino Schemtic of wiring servo motor with pot
Arduino Schemtic of wiring servo motor with pot
SG90_servo_motor-1
SG90_servo_motor-1
SG90_servo_motor-0
SG90_servo_motor-0
96-Controlling a servo position using a potentiometer
اللغة: C++
تم النسخ!

الأشياء التي قد تحتاجها

الموارد والمراجع

ملفات📁

لا توجد ملفات متاحة.