اگر در مورد موتورهای براشلس اطلاعاتی ندارید به این توضیح اکتفا کنید که که در این موتورها اتصال مستقیمی بین محور چرخان و قسمت ثابت موتور وجود ندارد. در موتورهای عادی DC این اتصال با استفاده از زغال یا جاروب (در موتورهای کوچک 3 تا 6 ولت) انجام میشود.
اما در یک موتور براشلس (Brushless) با تغییر مسیر جریان، قطب مغناطیسی در سیم پیچ تغییر کرده و با استفاده از جاذبه و دافعه بین آهنربای سیم پیچ (چرخان) و آهنربای ثابت، چرخش انجام میشود.

انواع مختلفی از این موتور در تجهیزات کامپیوتری مانند Fan و CD-Rom یا حتی Floppy Drive پیدا میشود. موتورهای 2 فاز مانند Fan، دارای دو سیم خروجی از سیم پیچ (و یک سیم جهت سنسور) بوده و به راحتی روشن میشوند.

اما موتورهای 3 فاز دارای 4 سیم (3 تا سیم پیچ و 1 سنسور) هستند که راه اندازی آنها مستلزم اعمال سیگنال و زمانبندی خاصی میباشد.

سیگنال مورد نیاز

در موتورهای 3 فاز معمولا هر دور کامل موتور به 36 مرحله تقسیم میشود. هر کدام از این مراحل 1 گام یا step در حرکت موتور هستند. البته عملا 6 گام اول مهم بوده و در مابقی گامها، 6 گام اول مجددا تکرار میشوند تا یک دور کامل زده شود.

اگر سه سیم مربوطه را به ترتیب A و B و C نامگذاری کنیم، سیگنال مورد نیاز را با یک عدد 3 بیتی، به صورت ABC نمایش میدهیم که عدد 1 به معنی اعمال ولتاژ مثبت (+) به سیم متناظر و عدد صفر نیز به معنی اعمال ولتاژ منفی (-)  میباشد.

حال برای چرخش موتور به ترتیب سیگنال‌های 110، 100، 101، 001، 011 و 010 را به صورت مداوم (در یک حلقه) به سیمپیچ اعمال میکنیم.
از چه راه‌اندازی استفاده شود

یکی از IC های رایجی که برای راه‌اندازی موتور استفاده می‌شود L293 است که به دلیل قیمت مناسب آن محبوبیت خاصی دارد. مدل 16 پایه آن (L293D) یک راه‌انداز 4 کاناله با ورودی ولتاژ ثانویه و گیت Enable بوده و برای این کار کاملا مناسب است.
بهتر است قبل از ادامه کار Datasheet آن را مطالعه کنید.

طراحی مدار و کدنویسی

فکر میکنم شکل مدار نیاز به توضح خاصی نداشته باشد. فقط به ذکر چند نکته میپردازم:
–    در صورت استفاده از موتورهای کوچک نیازی به ولتاژ ثانویه نیست و میتوان با خروجی 5 ولت میکروکنترلر هم موتور را به حرکت درآورد.
–    معمولا 3 پین سمت راست بر روی موتور 3 ورودی سیم پیچ هستند. در صورتی که در تشخیص آنها تردید داشتید از اهم متر استفاده کنید.
–    در سرعتهای بالا (مقدار wait کنتر از 3)  ممکن است IC به سرعت گرم شود، پس مراقب باشید.

brushless motor arduino

/*
*************************
* http://blog.mshams.ir *
*************************
*/

int wait = 7;
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);
}

// the loop routine runs over and over again forever:
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);
}
Print this pageEmail this to someoneShare on Google+Share on FacebookShare on LinkedInTweet about this on TwitterShare on RedditShare on TumblrShare on StumbleUponPin on Pinterest