دروس ESP32 17/55 - التحكم في محرك السيرفو باستخدام ESP32 ومواتير - مجموعة تعلم إنترنت الأشياء ESP32

دروس ESP32 17/55 - التحكم في محرك السيرفو باستخدام ESP32 ومواتير - مجموعة تعلم إنترنت الأشياء ESP32

في هذا الدرس، سنتعلم كيفية التحكم في محرك سيرفو باستخدام متحكم ESP32 وجهاز قياس المقاومة من مجموعة تعلم إنترنت الأشياء ESP32 من شركة SunFounder. بنهاية هذا المشروع، ستكون قادرًا على ضبط زاوية محرك السيرفو بسلاسة باستخدام جهاز قياس المقاومة، مما يتيح لك التحكم بدقة. هذه طريقة رائعة لاستكشاف إمكانيات ESP32 وكيف يتواصل مع المحركات.

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

شرح الأجهزة

تشمل المكونات الأساسية لهذا المشروع المتحكم الدقيق ESP32، والمحرك المتدرج (SG90)، ومقاومة متغيرة. يُعد ESP32 متحكماً دقيقاً قوياً يوفر Wi-Fi وBluetooth مدمجين، مما يجعله مناسباً لمشاريع إنترنت الأشياء. وهو قادر على التحكم في مجموعة متنوعة من الأجهزة، بما في ذلك المحركات، بدقة عالية.

محرك السيرفو SG90 هو مكون مستخدم على نطاق واسع يمكنه أن يدور بزاوية تقارب 270 درجة. يعمل على إشارة تعديل عرض النبض (PWM)، حيث يتم تحديد زاوية الدوران من خلال عرض النبضة المرسلة إليه. يعمل المتغير الكهربائي كقاعدة مقاومة متغيرة، مما يتيح لك ضبط الجهد المرسل إلى ESP32، الذي يتحكم بدوره في موضع السيرفو.

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

شركة التصنيع SG
رقم الجزء SG90
جهد المنطق/المدخلات والمخرجات ٣.٣ فولت (ESP32)
جهد الإمداد 5 فولت
تيار الإخراج (لكل قناة) ١.٢ أ
تيار الذروة (لكل قناة) 2.5 أ
إرشادات تردد PWM 50 هرتز
عتبات منطق الإدخال 0.2 فولت (منخفض)، 2.5 فولت (مرتفع)
انخفاض الجهد / RDS(on)/ تشبع 0.5 فولت
الحدود الحرارية 85 درجة مئوية كحد أقصى
حزمة بلاستيك
ملاحظات / متغيرات متوفر بأنواع تروس مختلفة

  • تأكد من أن المحرك مزود بجهد مناسب (5 فولت).
  • قم بتوصيل أرضية السيرفو بأرضية ESP32 للحصول على مرجع مشترك.
  • استخدم إشارات PWM المناسبة للتحكم في موضع السيرفو.
  • كن على دراية بمتطلبات التيار الخاصة بالسيرفو؛ استخدم مصدر طاقة خارجي إذا لزم الأمر.
  • تحقق من تعيينات الدبابيس الصحيحة عند التوصيل لتجنب التكوينات الخاطئة.

تعليمات الأسلاك

ESP32-17-Sevo_motor-wiring

لربط محرك السيرفو والمقاوم المتغير بـ ESP32، ابدأ بتوصيل سلك الأرض من السيرفو (عادةً أسود أو بني) بأحد دبابيس الأرض على ESP32. بعد ذلك، قم بتوصيل سلك الطاقة (عادةً أحمر) من السيرفو بدبوس 5V على ESP32. أخيرًا، قم بتوصيل سلك الإشارة (عادةً برتقالي أو أبيض) من السيرفو بالدبوس25على ESP32.

للمقاوم المتغير، قم بتوصيل أحد الدبابيس الخارجية إلى دبوس 3.3 فولت على ESP32 والدبوس الخارجي الآخر إلى الأرض. يجب توصيل الدبوس الأوسط للمقاوم المتغير إلى الدبوس34على ESP32. تسمح هذه الإعدادات لـ ESP32 بقراءة جهد الخرج المتغير من القابل للتعديل، والذي سيستخدم للتحكم في موضع السيرفو.

أمثلة الشيفرة والتوجيه

يبدأ مقتطف الشيفرة التالي المحرك ويحدد المعلمات للتحكم في حركته:

#include 

Servo myServo;
const int servoPin = 25;
const int minPulseWidth = 500; // 0.5 ms
const int maxPulseWidth = 2500; // 2.5 ms

void setup() {
  myServo.attach(servoPin, minPulseWidth, maxPulseWidth);
  myServo.setPeriodHertz(50); // Standard 50Hz servo
}

في هذا الرمز، نحن ندرج الـESP32Servoمكتبة وأنشئ مثيلًا من السيرفو بالاسمmyServoنحدد رقم الدبوس للخدمة ونحدد الحد الأدنى والحد الأقصى لعرض النبضات التي تت correspond إلى حدود زاوية الخدمة.

ESP32_servo_lib

بعد ذلك، دعونا نلقي نظرة على الحلقة التي تحرك السيرفو باستمرار ذهابًا وإيابًا:

void loop() {
  for (int angle = 0; angle <= 180; angle++) {
    int pulseWidth = map(angle, 0, 180, minPulseWidth, maxPulseWidth);
    myServo.writeMicroseconds(pulseWidth);
    delay(15);
  }
  for (int angle = 180; angle >= 0; angle--) {
    int pulseWidth = map(angle, 0, 180, minPulseWidth, maxPulseWidth);
    myServo.writeMicroseconds(pulseWidth);
    delay(15);
  }
}

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

عرض / ماذا تتوقع

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

طوابع زمنية للفيديو

  • :00 بدء
  • 1:56 ما هو محرك السيرفو
  • ٥:٠٠ صفحة الوثائق
  • 6:33 شرح توصيل السرفو
  • اختيار منفذ COM لـ ESP32 في Arduino IDE الساعة 7:45
  • 9:27 شرح كود الأردوينو
  • عرض التحكم في السيرفو باستخدام ESP32 الساعة 14:31
  • 16:04 تشغيل السيرفو بخلاف 5 فولت
  • 18:47 التحكم في السيرفو بدون استخدام الحلقة
  • ٢٠:١٥ التحكم في السيرفو باستخدام الجهد المتغير
  • 21:37 شرح كود أردوينو لسيرفو مع بوت

الصور

ESP32-17-Sevo_motor-schematic
ESP32-17-Sevo_motor-schematic
ESP32-17-Sevo_motor-wiring
ESP32-17-Sevo_motor-wiring
ESP32_servo_lib
ESP32_servo_lib
816-ESP32 Tutorial 17/55- Arduino code for controling servo motor
اللغة: C++
تم النسخ!

ملفات📁

ورقة البيانات (pdf)

ملفات أخرى