التحكم في سيرفو موتور من خلال خادم الويب ESP32 مع الاردوينو IDE الجزء الاول اكتب تعليقُا

ESP32 Servo Motor Web Server with Arduino IDE

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

كيفية التحكم في محرك سيرفو ؟

يمكنك وضع عمود السيرفو في زوايا مختلفة من 0 إلى 180 درجة . يتم التحكم في الماكينات باستخدام إشارة تعديل عرض النبضة (PWM) . هذا يعني أن إشارة PWM المرسلة إلى المحرك ستحدد موضع العمود .

0-180-degrees

للتحكم في المحرك ، يمكنك ببساطة استخدام قدرات PWM الخاصة بـ ESP32 عن طريق إرسال إشارة 50 هرتز مع عرض النبضة المناسب . أو يمكنك استخدام مكتبة لجعل هذه المهمة أكثر بساطة .

منتجات المشروع

توصيل محرك سيرفو بـ ESP32

تحتوي محركات السرفو  على ثلاثة أسلاك : الطاقة والأرضي والإشارة . تكون الطاقة عادة حمراء ، GND أسود أو بني ، وسلك الإشارة عادة ما يكون أصفر أو برتقالي أو أبيض .

servo-motor-wires
1

عند استخدام محرك سيرفو  صغيرة مثل S0009 كما هو موضح في الشكل أدناه ، يمكنك تشغيلها مباشرةً من ESP32 .

servo-motor-s009

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

servo-motors

إذا كنت تستخدم سيرفو صغيرة مثل S0009 ، فأنت بحاجة إلى الاتصال :

2

ملاحظة : في هذه الحالة ، يمكنك استخدام أي ESP32 GPIO ، لأن أي GPIO قادر على إنتاج إشارة PWM . ومع ذلك ، لا نوصي باستخدام GPIOs 9 و 10 و 11 المتصلة بفلاش SPI المدمج ولا نوصي باستخدامات أخرى .

مخطط توصيل محرك سيرفو بـ ESP32

في الأمثلة الخاصة بنا ، سنقوم بتوصيل سلك الإشارة بـ GPIO 13 . لذا ، يمكنك اتباع المخطط التخطيطي التالي لتوصيل محرك سيرفو الخاص بك .

servo-esp32-schematic

(يستخدم هذا المخطط إصدار وحدة ESP32 DEVKIT V1 مع 36 GPIOs – إذا كنت تستخدم طرازًا آخر ، فالرجاء التحقق من الاطراف للوحة التي تستخدمها.)

الكود البرمجي لتوصيل محرك سيرفو بـ ESP32

انتقل إلى الاردوينو IDE . تأكد من تحديد لوحة ESP32 ، ثم انتقل إلى  File > Examples > ServoESP32 > Simple Servo .

#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(13);  // attaches the servo on pin 13 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
  }
}

قم بتحميل الكود إلى ESP32 . بعد تحميل الكود ، يجب أن ترى عمود المحرك يدور من جانب واحد ، ثم إلى الجانب الآخر .

giphy

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *