عکس پیش‌فرض نوشته

موتورهای BLDC یا همان براشلس یا بدون جاروبک موتورهایی هستند که جاروبک از داخل آنها حذف شده و رتور بدون سیم پیچ است.

امروزه کاربرد این نوع موتورها بسیار زیاد شده است به طوری که در بیشتر وسایل از قبیل کوادکور، CDROM، هارد، برخی از پرینترها و دستگاه های فتوکپی و …. استفاده می شود.

Brushless Motor with Arduino

از مزایای این نوع موتورها می توان به موارد زیر اشاره کرد:

کاهش سایز این نوع موتور در مقایسه با مدل های دیگر

راندمان بالاتر

سرعت بیشتر

پاسخ سریعتر

گشتاور راه اندازی بالا

انتقال حرارت بهتر

بدون نیاز به نگهداری

اما برای همه مزیت باید هزینه داد زیرا این نوع موتورها قیمت بالاتری دارند اما این قیمت بالاتر فقط مربوط به موتور نمی شود، زیرا این موتورها برای راه اندازی نیاز به درایور دارند و با دادن ولتاژ DC معمولی راه اندازی نمی شوند.

نحوه راه اندازی موتورهای BLDC

برای راه اندازی نیاز به ولتاژ DC و درایور مناسب با نوع موتور داریم.

هدف ما در این مطلب راه اندازی موتور CDROM است که دارای سه سیم است البته با استفاده از Arduino UNO

این سه سیم با ولتاژ DC می توانند 6 حالت مختلف بگیرند به صورت زیر:

110 – 100 – 101 – 001 – 011 – 010

این 6 حالت (STEP) باید به ترتیب اجرا شوند.

هرچه سرعت اعمال این 6 حالت بیشتر باشد (فرکانس بالاتر) سرعت چرخش افزاش می یابد و هرچه کمتر باشد، سرعت چرخش کاهش می یابد.

به عبارت دیگر، ما توسط Arduino  حالت (STEP) اول را اعمال می کنیم سپس یک وقفه ایجاد کرده و سپس STEP بعدی اعمال می شود این کار باعث می شود موتور یک پله چرخش داشته باشد. به همین صورت اگر تمام STEP ها را پشت سر هم به موتور اعمال کنیم و این حالت را در داخل یک لوپ قرار دهیم، موتور به صورت دورانی شروع به چرخش می کند.

در صورتی که روی یک STEP توقف کنیم موتور در همان حالت قفل می شود و نمی توان موتور را با دست چرخاند البته اینکه نمی شود با دست چرخاند بستگی به قدرت موتور دارد.

وقتی که ما موتور را در حالت قفل قرار می دهیم موتور جریان کشی دارد. فقط در سه حالت زیر موتور آزاد و بدون جریان کشی است:

1-موتور در STEP 000   قرار گیرد.

2-موتور در STEP  111 قرار گیرد.

3-تمام سیم های موتور قطع باشد.

برای تامین جریان کشی موتور ما از درایور L293 استفاده کرده ایم.

نحوه سیم کشی به صورت زیر است:

Brushless Motor with Arduino

برنامه نیز به صورت زیر باید نوشته شود:

int wait = 10;
int p1 = 2;
int p2 = 3;
int p3 = 4;
char inChar;

void setup() {
    pinMode(p1, OUTPUT);
    pinMode(p2, OUTPUT);
    pinMode(p3, OUTPUT);
    Serial.begin(9600);
}

void loop() {
    if (Serial.available()){
        inChar = (char)Serial.read();
        if (inChar == '-'){
            wait -=1;
        }
        else{
            wait +=1;
    }
    Serial.println(wait);
    }

    digitalWrite(p1, 1);
    digitalWrite(p2, 1);
    digitalWrite(p3, 0);
    delay(wait);
    digitalWrite(p1, 1);
    digitalWrite(p2, 0);
    digitalWrite(p3, 0);
    delay(wait);
    digitalWrite(p1, 1);
    digitalWrite(p2, 0);
    digitalWrite(p3, 1);
    delay(wait);
    digitalWrite(p1, 0);
    digitalWrite(p2, 0);
    digitalWrite(p3, 1);
    delay(wait);
    digitalWrite(p1, 0);
    digitalWrite(p2, 1);
    digitalWrite(p3, 1);
    delay(wait);
    digitalWrite(p1, 0);
    digitalWrite(p2, 1);
    digitalWrite(p3, 0);
    delay(wait);
}

همان طور که می بینید پارامتر wait همان مقدار وقفه بین STEP ها است.

برای افزایش و یا کاهش سرعت می توانید ماژول Arduino را به کامپیوتر وصل کنید و از طریق پورت سریال آن را کنترل کنید. بدین منظور برای کاهش سرعت باید کلید “-” و برای افزایش سرعت کلید “+” را فشار دهید.

این آموزش در بخش الکترونیک سایت ارسال شده، طبق تغییرات اخیر مجموعه، پشتیبانی بخش الکترونیک در موارد تخصصی متوقف شده؛ متأسفانه تا اطلاع ثانوی نمی‌تونیم پاسخگوی سؤالات فنی شما باشیم.