logo-site-sefid
Search
Close this search box.
کنترل موتور براشلس با آردوینو

کنترل موتور براشلس با آردوینو

آموزش کنترل موتور براشلس آردوینو BLDC و مدار ESC


در این آموزش یاد می‌گیریم که چگونه یک موتور براشلس را با استفاده از برد آردوینو و مدار ESC کنترل کنیم.

مرور کلی


برای این مثال، من یک موتور BLDC outrunner با مشخصات زیر دارم: این موتور دارای رتبه KV ۱۰۰۰ است، می‌تواند با استفاده از باتری لیتیوم پلیمر S2، S3 یا S4 تغذیه شود و به مدار A30ESC نیاز دارد. رتبه KV در موتور براشلس دور در دقیقه موتور را بدون بار تعریف می‌کند.

01-مرور-کلی


در این مورد، KV۱۰۰۰ به این معنی است که، برای مثال، اگر ما موتور را با باتری لیتیوم پلیمر S2 تأمین کنیم که ولتاژ ۷.۴ ولت دارد، موتور می‌تواند به حداکثر دور در دقیقه ۷.۴ برابر ۱۰۰۰ برسد، یا ۷۴۰۰ دور در دقیقه باشد.
موتورهای براشلس نیازمند تغذیه هستند و رایج‌ترین روش برای تغذیه آن‌ها استفاده از باتری‌های لیتیوم پلیمر است. تعداد “S” یک باتری لیتیوم پلیمر نشان می‌دهد که باتری چند سلول دارد و هر سلولV ۳.۷ ولتاژ دارد.

02 مرور کلی


برای این مثال، من از باتری لیتیوم S3 استفاده می‌کنم که ۳ سلول دارد و ولتاژ آن V 1.1 است. بنابراین، من می‌توانم انتظار داشته باشم که موتور من به حداکثر ۱۱۱۰۰ دور در دقیقه برسد.
در آخر، در اینجا یک مدار A30ESC ارائه شده ‌است که من برای این مثال از آن استفاده خواهم کرد و با الزامات موتور مطابقت دارد. از یک طرف مدار ESC سه سیم دارد که سه ‌فاز موتور را کنترل می‌کند و از طرف دیگر دو سیم VCC و GND برای تغذیه دارد.

03-مرور-کلی


همچنین مجموعه دیگری از سه سیم از مدار ESC خارج می‌شوند و این خط سیگنال، V ۵+ و زمین است. این ویژگی ESC مدار الیمیناتور باتری نامیده می‌شود و همانطور که از نام آن پیداست، نیاز باتری جداگانه برای یک میکروکنترلر را از بین می‌برد. با این کار ESC، V 5 تنظیم‌شده را فراهم می‌کند که می‌تواند برای قدرت بخشیدن به آردینو ما مورد استفاده قرار گیرد.
ما در اینجا می‌توانیم متوجه شویم که این اتصال در واقع همان چیزی است که در موتورهای سروو می‌بینیم.

04-مرور-کلی


بنابراین، کنترل یک موتور براشلس با استفاده از ESC و آردوینو به سادگی کنترل سروو با استفاده از آردوینو است. ESC ها از همان نوع سیگنال کنترل به عنوان سروو استفاده می‌کنند و این سیگنال PWM استاندارد ۵۰ هرتز است.

05-مرور-کلی


این بسیار مناسب است، زیرا برای مثال، هنگام ساخت یک صفحه RC، ما معمولا هم به سرووها و هم موتورهای براشلس نیاز داریم، و به این ترتیب، می‌توانیم آن‌ها را به راحتی با همان نوع کنترلر کنترل کنیم.
بنابراین، با استفاده از آردینو ما فقط باید سیگنال PWM ۵۰ هرتز را تولید کنیم و بسته به عرض پالس‌ها یا مدت‌ زمان حالت بالا که باید از ۱ میلی‌ثانیه تا ۲ میلی‌ثانیه تغییر کند، ESC موتور را از حداقل به حداکثر RPM هدایت خواهد کرد.

06-مرور-کلی


نمودار مدار کنترل موتور براشلس آردینو


در اینجا نمودار مدار برای این مثال آورده شده است. علاوه بر ESC، ما فقط از یک پتانسیومتری ساده برای کنترل سرعت موتور استفاده خواهیم کرد.

07-نمودار-مدار-کنترل-موتور-براشلس-آردوینو


کد آردینو برای کنترل موتور BLDC

/*
        Arduino Brushless Motor Control
     by Dejan, https://howtomechatronics.com
*/
#include <Servo.h>
Servo ESC;     // create servo object to control the ESC
int potValue;  // value from the analog pin
void setup() {
  // Attach the ESC on pin 9
  ESC.attach(9,1000,2000); // (pin, min pulse width, max pulse width in microseconds) 
}
void loop() {
  potValue = analogRead(A0);   // reads the value of the potentiometer (value between 0 and 1023)
  potValue = map(potValue, 0, 1023, 0, 180);   // scale it to use it with the servo library (value between 0 and 180)
  ESC.write(potValue);    // Send the signal to the ESC
}

کد آردینو با تنها چند خط کد بسیار ساده است.


شرح:  بنابراین نیاز به تعریف کتابخانه سروو داریم، زیرا با این کتابخانه سروو می‌توانیم به راحتی سیگنال PWM ۵۰ هرتز را تولید کنیم، در غیر این صورت سیگنال‌های PWM که آردینو تولید می‌کند در فرکانس‌های متفاوتی هستند. سپس ما نیاز به ایجاد یک سروو کار برای کنترل ESC و تعریف یک متغیر برای ذخیره‌سازی ورودی آنالوگ از پتانسیومتر داریم. در بخش راه‌اندازی، با استفاده از تابع attach، تعریف می‌کنیم که کدام پین آردینو به سیگنال کنترل ESC متصل شده و همچنین پهنای پالس‌های حداقل و حداکثر سیگنال PWM در میکروثانیه است.
در بخش حلقه، ابتدا پتانسیومتر را می خوانیم، مقدار آن را از ۰ تا ۱۰۲۳ به مقدار از ۰ تا ۱۸۰ نگاشت می‌کنیم. سپس با استفاده از تابع write سیگنال را به ESC ارسال می‌کنیم یا سیگنال PWM ۵۰ هرتز را تولید می‌کنیم. مقادیر ۰ تا ۱۸۰ متناظر با مقادیر ۱۰۰۰ تا ۲۰۰۰ میکروثانیه تعریف ‌شده در بخش راه‌اندازی هستند.
بنابراین، اگر ما این کد را در آردینو خود آپلود کنیم، و سپس همه چیز را با استفاده از باتری تقویت کنیم، می‌توانیم سرعت موتور براشلس صفر را تا حداکثر با استفاده از پتانسیومتر کنترل کنیم.

08-شرح


با این حال، چیزهای کمی وجود دارند که ما باید در اینجا به آن‌ها توجه کنیم. زمانی که در ابتدا موتور را تقویت می‌کنید، مقدار سیگنال باید یکسان یا کم‌تر از حداقل مقدار ۱ میلی‌ثانیه باشد. این مسلح کردن ESC نامیده می‌شود، و موتور تأیید می‌کند، به طوری که ما می‌دانیم که به درستی مسلح شده ‌است. در صورتی که در هنگام تغذیه مقدار بیشتری داشته باشیم، که به این معنی است که ما یک دریچه گاز داریم، ESC موتور را تا زمانی که به حداقل مقدار درست برسد، راه‌اندازی نخواهد کرد. این از نظر ایمنی خیلی راحت است، چون موتور در صورتی که ما یک دریچه گاز در هنگام برق‌رسانی داشته باشیم، کار را شروع نخواهد کرد.


(کالیبراسیون)یا تنظیم دقیق درجه بندی ESC

در نهایت، بیایید توضیح دهیم که کالیبراسیون ESC چگونه کار می‌کند. هر ESC نقاط بالا و پایین خاص خود را دارد، و ممکن است کمی متفاوت باشند. برای مثال، نقطه پایین ممکن است ۱.۲ میلی‌ثانیه و نقطه بالا ممکن است ۱.۹ میلی‌ثانیه باشد. در چنین حالتی دریچه گاز ما هیچ کاری را در 20% اول انجام نمی دهد تا زمانی که به نقطه 1.2 میلی ثانیه برسد.

09-کالیبراسیون-ESC


برای حل این مشکل، می‌توانیم ESC را تنظیم کنیم یا نقاط بالا و پایین را همانطور که می‌خواهیم تنظیم کنیم. برای این منظور، قبل از تقویت ESC، ابتدا باید پتانسیومتر خود را تا مقدار حداکثر یا حداقل بیشتر از نقطه میانی جریان بالا ببریم. سپس می توانیم ESC را روشن کنیم و چند بوق از موتور را که در واقع تأیید می‌کند که نقطه اوج جدید را مشخص کرده‌ایم، خواهیم شنید.

10-کالیبراسیون-ESC


سپس بعد از ۲ ثانیه، ما باید پتانسیومتر خود را به جایی که نقطه پایین جدید قرار دارد منتقل کنیم. ما دوباره بوق های تأیید را خواهیم شنید و با این کار با کالیبراسیون ESC کار خود را انجام می دهیم. حالا دریچه گاز ما فوراٌ پاسخ خواهد داد و ما می‌توانیم موتور را در این دو نقطه جدید کنترل کنیم.
این تقریبا همه چیز برای این آموزش است. 

11-کالیبراسیون-ESC


امیدوارم از این آموزش لذت برده باشید و چیز جدیدی یاد بگیرید. لطفاٌ در بخش نظرات هر سوالی را بپرسید و فراموش نکنید که مجموعه پروژه‌های آردینو ما را بررسی کنید.

 

رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

دسته بندی نشده

ماژول WIFI

ماژول WIFI قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از مقالات

ماژول آمپلی فایر

ماژول آمپلی فایر قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از

ماژول سنسور مجاورت خازنی

ماژول سنسور مجاورت خازنی قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند

1 دیدگاه دربارهٔ «کنترل موتور براشلس با آردوینو»

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *