web analytics
الاردوينو

محرك التيار المستمر بلا فرش والاردوينو

يعد التحكم في محرك التيار المستمر بلا فرش باستخدام الاردوينو عملية سهلة الى حد ما سوف نقوم في دراسة طرقًا متعددة للتحكم في محرك التيار المستمر بلا فرش. لكن من الضروري معرفة أن الاردوينو لا يوفر سوى 5 فولت و 40 مللي أمبير من الممكن ان يعمل المحرك ولكن ليس بكفاءة !. لحل هذه المشكلة ، نستخدم مكونات إضافية تسمى متحكم السرعة الالكتروني (ESC) لذلك سنقوم ببناء مشاريع باستخدام ال ESC ، سنقوم ببناء 3 مشاريع الاول التحكم في المحرك باستخدام الشاشة التسلسلية  serial monitor والطريقة الثانية باستخدام مقاومة متغيرة potentiometer واخيرا سوف نضيف حساس الامواج فوق الصوتية Ultrasonic Sensor للتحكم في سرعة المحرك.

التحكم في محرك التيار المستمر بلا فرش باستخدام الشاشة التسلسلية Serial Monitor

في البداية ، سوف نتعلم كيفية توصيل المحرك مباشرة بلوحة الاردوينو و ESC للتحكم باستخدام بالمحرك باستخدام نافذة Serial Monitor ، في هذا المشروع نحتاج إلى هذه المكونات الموضحة في الجدول التالي:

المكون العدد
اردينو اونو آر 3 – Arduino UNO R3 1
محرك تيار مستمر بلا فرش 1500 kv & 20A / 60 sec 1
لوحة توصيل صغيرة 1
وحدة التحكم في السرعة الالكترونية ESC GH-30A 1
بطارية ليبو 3s -11.1v 1
الأسلاك والموصلات 10
حساس الامواج فوق الصوتية Ultrasonic sensor HC-SR04 1

سنقوم بتوصيل محرك التيار المستمر بلا فش مع وحدة التحكم في السرعة الالكترونية ESC بحيث تكون الأقطاب الكهربائية صحيحة (إذا كانت خاطئة فإن المحرك سوف يدور في الاتجاه المعاكس) وسنقوم بتوصيل بطارية Lipo ايضا بالأقطاب الكهربائية الصحيحة. سنقوم بإدخال ESC إلى دبوس D11 PWM ثم يقوم المستخدم بإدخال القراءات من الشاشة التسلسلية ، ثم يتعين علينا جعل المستخدم يدخل قيم من 0 إلى 180 لأن القيمة 0 ستنتج 0٪ PWM والقيمة 180 ستولد 100٪ من دورة العمل. أي قيم أعلى من 180 لن تعمل شيئًا (لا قيمة لها). وسوف نستخدم الاسم throttle  لتعريف القيم. سوف تكون توصيلات المكونات مع الاردوينو على النحو التالي:

الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتوصيل الاردوينو بجهاز الكمبيوتر باستخدام USB ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

/* www.tocircuit.com
 Prepared by Fawzi Al-azraq 
 admin@tocircuit.com
 */
#include <Servo.h> //Use the Servo librarey
Servo ESC; //Here name of the DC motor
void setup()
{
ESC.attach(11); //Connect with 11 PWM Pin of Arduino
Serial.begin(9600);
while (! Serial);
Serial.println("Speed 0 to 180");
}
void loop()
{
if (Serial.available())
{
  
int throttle = Serial.println(); //Read the voltage signal from Serial monitor
if (throttle >= 0 && throttle <= 180)
{
}
ESC.write(throttle); //based on the value of throttle generate PWM signal
}
}

توصيل محرك التيار المستمر بلا فرش باستخدام مقاومة متغيرة

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

ان المقاومة المتغيرة سوف تنتج قيم تتراوح بين 0 – 1023 وهذه القيمة لا يمكن استخدامها للتحكم في ESC لذلك سوف نستخدم الاقتران map لتحويل القيم من 0 إلى 1023 إلى 0 إلى 180. وسوف نربط المقاومة المتغيرة مع الطرف A1 . سوف تكون توصيلات المكونات مع الاردوينو على النحو التالي:

الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

/* www.tocircuit.com
 Prepared by Fawzi Al-azraq 
 admin@tocircuit.com
 */
 
#include <Servo.h>
Servo ESC; 

void setup()
{
ESC.attach(11); 
}

void loop()
{
int throttle = analogRead(A1); 
throttle = map(throttle, 0, 1023, 0, 180); 
ESC.write(throttle);
}

توصيل محرك التيار المستمر بلا فرش مع حساس الامواج فوق الصوتية

سبق أن درسنا حساس استشعار الموجات فوق الصوتية في درس (قياس المسافة باستخدام حساس الالترا سونيك) وتعرّفنا على مبدأ عمله وكيفية استخدامه لقياس المسافة ، والآن سوف نستخدم هذا المستشعر مع محرك التيار المستمر بلا فرش (انها خيار جيد لاول طائرة يمكنك بناؤها بسهولة). سنجعل سرعة المحرك (RPM) متناسبة مع المسافة بحيث تتغير سرعة المحرك حسب المسافة. سوف تكون توصيلات المكونات مع الاردوينو على النحو التالي:

الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

/* www.tocircuit.com
 Prepared by Fawzi Al-azraq 
 admin@tocircuit.com
 */
#include <Servo.h> //Servo librarey to support ESC

//First Defines pins numbers for trig & echo 
int trigPin = 13;
int echoPin = 12;

// now Defines variables
long duration;
int distance;

Servo ESC; //Here name of the DC motor

void setup()
{
  // here we defines output and input
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT); 

ESC.attach(11); //Generate PWM in pin 11 of Arduino
Serial.begin(9600); // Starts the serial communication
}

void loop()
{

digitalWrite(trigPin, LOW);
delayMicroseconds(3);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor

Serial.print("Distance is: ");
Serial.println(distance);

int throttle = distance; //Read the distance from Ultrasonic sensor
throttle = map(throttle, 100, 0, 1000, 1500); //Map works only from 0-180 so convert distance in cm to new map range
ESC.writeMicroseconds(throttle); 
}

يمكنك الآن إضافة المزيد من المحركات ، على سبيل المثال ، لإنشاء لبناء رباعية متواضعة (درون صغيرة) بدون تحكم بشري.

اترك تعليقاً

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

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock