آموزش ساخت، راهاندازی و کنترل درایور موتور براشلس 24 ولت 10 آمپر سنسور دار به روش ذوزنقهای با میکروکنترلر ATmega48
فهرست مطالب
- پیشگفتار
- معرفی تیم اصفهان درایو و هدف مقاله
- اهمیت یادگیری راهاندازی موتورهای BLDC برای علاقهمندان
- مقدمه
- آشنایی با موتورهای براشلس (BLDC) و کاربردهای آنها
- مقایسه موتورهای براشلس و جاروبکدار
- مزایای موتورهای BLDC
- چالشهای راهاندازی موتورهای BLDC
- ساختار داخلی موتور براشلس در مقایسه با موتور DC
- موتورهای DC جاروبکدار: ساختار و معایب
- موتورهای براشلس (BLDC): حذف جاروبک و مزایای طراحی
- ساختار موتور BLDC
- انواع موتورهای BLDC
- موتورهای Inrunner: ویژگیها و کاربردها
- موتورهای Outrunner: ویژگیها و کاربردها
- تفاوتها و انتخاب مناسب
- سرعت و گشتاور
- اندازه و وزن
- کاربرد و هزینه
- انواع موتورهای BLDC
- موتورهای BLDC سنسوردار: اصول و نحوه راهاندازی
- اجزای اصلی موتور BLDC
- روتور: ساختار و عملکرد
- استاتور: فازبندی و تولید میدان مغناطیسی
- سنسورهای اثر هال: نقش و اتصال
- هماهنگی اجزا برای چرخش روان
- مکانیزم چرخش: نقش استاتور و روتور
- اهمیت زاویه 120 درجه در فازها و سنسورها
- کموتاسیون هر 60 درجه و نقش سیگنالهای هال
- کنترل الکترونیکی
- نقش میکروکنترلر ATmega328P
- فرآیند کنترل و نقش درایور
- مزایای کنترل الکترونیکی نسبت به مکانیکی
- اجزای اصلی موتور BLDC
- کموتاسیون موتور BLDC با روش ذوزنقهای
- کموتاسیون چیست؟
- اصول روش ذوزنقهای
- فعالسازی دو فاز در هر لحظه
- تولید گشتاور یکنواخت
- مراحل کموتاسیون: بررسی قدمبهقدم
- جدول کموتاسیون: ارتباط سیگنالهای هال و سوئیچها
- نقش PWM و GPIO در کنترل فازها
- پیادهسازی سختافزار کنترل موتور براشلس سنسوردار
- معرفی قطعات و نقش آنها
- گیتدرایور IR2101: نقش و عملکرد
- ماسفت IRF3205: ویژگیها و کاربرد
- سنسور جریان ACS712: اندازهگیری جریان
- تقسیم مقاومتی برای اندازهگیری ولتاژ
- پتانسیومتر برای کنترل سرعت
- اندازهگیری دما با NTC
- طراحی و اتصالات سختافزاری
- پل H با IRF3205
- اتصال گیتدرایور IR2101
- اتصال سنسور جریان ACS712
- تقسیم مقاومتی و پایش ولتاژ
- پتانسیومتر و کنترل سرعت
- مدار NTC برای اندازهگیری دما
- معرفی قطعات و نقش آنها
- برنامهنویسی و کنترل نرمافزاری
- معرفی کد نوشتهشده برای ATmega48P
- تنظیمات اولیه
- تعریف پینها (هال، PWM، GPIO)
- تنظیم پورتها، PWM و ADC
- توابع اصلی
- خواندن سنسورهای هال
- کموتاسیون با روش ذوزنقهای
- اندازهگیری و بررسی ایمنی (جریان، ولتاژ، دما)
- کنترل سرعت با پتانسیومتر
پیش گفتار
تیم اصفهان درایو در این مقاله با افتخار شما را با دنیای موتورهای براشلس سنسوردار (BLDC) آشنا میکند. از ساختار و عملکرد اجزای این موتورها گرفته تا برنامهنویسی و سختافزار مورد نیاز برای راهاندازی آنها، قدم به قدم همراهتان هستیم. این مقاله، حاصل سالها تجربه عملی تیم ما در حوزه الکترونیک و موتور کنترل است و با هدف سادهسازی یادگیری برای علاقهمندان به این حوزه تدوین شده. در پایان، امیدواریم بتوانید با اطمینان یک موتور براشلس سنسوردار را خودتان راهاندازی کنید. این راهنما، هرچند یک گام کوچک، میتواند نقطه شروعی برای پیشرفت شما در دنیای موتور کنترل باشد. از حمایت شما و معرفی ما به دوستانتان سپاسگزاریم!
مقدمه
موتورهای براشلس (BLDC) به دلیل راندمان بالا، عمر طولانی، نویز کم و قابلیت کنترل دقیق، در کاربردهای متنوعی مانند رباتیک، خودروها-دوچرخه ها و موتورسیکلت های برقی، فنها، پمپها و تجهیزات صنعتی بسیار محبوب هستند. با این حال، راهاندازی و کنترل این موتورها در مقایسه با موتورهای DC جاروبکدار معمولی، پیچیدگی بیشتری دارد و نیازمند دانش فنی و سخت افزار مناسب است. در این مقاله، قصد داریم تا با کمک تیم اصفهان درایو شما بتونید سخت افزار و نرم افزار یک کنترلر برای موتور براشلس 24 ولت سنسور دار طراحی کنید که از روش ذوزنقهای و میکروکنترلر ATmega48 بهره میبرد. این کنترلر امکان کنترل سرعت با پتانسیومتر، حفاظت در برابر ولتاژ غیرمجاز، جریان بیش از حد و دمای بالا را فراهم میکند. این آموزش برای علاقهمندان به الکترونیک نوشته شده و با ارائه جزئیات کامل سختافزاری، نرمافزاری و نکات علمی و عملی، راهنمایی جامع برای ساخت و برنامهنویسی درایو موتورهای BLDC ارائه میدهد.
در ابتدا یه مقایسه کوتاهی داشته باشیم بین موتورهای براشلس و جاروبک دار، این مقایسه بهمون کمک میکنه که درک کنیم چرا موتورهای براشلس جایگزین مناسبی برای موتورهای DC جاروبک دار هستند .
عکس زیر حتما برای همه اشنا هست و احتمالا یکباری درب این نوع موتورها رو باز کردیم . همونطور که در تصویر مشخصه، موتورهای DC معمولی با استفاده از جاروبک (براش) ولتاژ رو به آرمیچر منتقل میکنن تا روتور بچرخه. جاروبکها در واقع یه اتصال مکانیکی هستن که جریان رو به سیمپیچهای روتور میرسونن و با کمک کموتاتور، جهت جریان رو عوض میکنن تا موتور به حرکت ادامه بده. اما این روش یه مشکل بزرگ داره : جاروبکها به مرور زمان فرسوده میشن، جرقه تولید میکنن و نیاز به تعمیر و نگهداری دارن.
در مقابل، در موتورهای براشلس (BLDC)، جاروبک و اتصال مکانیکی کاملاً حذف شده. به جای جاروبک، یه سیستم الکترونیکی هوشمند با میکروکنترلر( مثل ATMEGA8 تو این پروژه) و درایور جایگزین شده که جریان رو به فازهای استاتور میفرسته و چرخش روتور رو کنترل میکنه. این طراحی باعث میشه موتور BLDC دوام بیشتری داشته باشه، نویز و جرقه کمتری تولید کنه و راندمانش هم بالاتر بره.
ساختار موتور BLDC
موتورهای براشلس از نظر ساختار به دو دسته کلی Outrunner و Inrunner تقسیم میشن
موتور Inrunner
موتور Inrunner یه نوع موتور براشلسه که توی اون، روتور (قسمت متحرک با آهنرباهای دائم) داخل استاتور (بخش ثابت با سیمپیچها) قرار داره. این ساختار باعث میشه که روتور با سرعت بالایی بچرخه، معمولاً بین 10,000 تا 20,000 دور در دقیقه یا بیشتر! چون روتور داخل هست، این موتورها معمولاً جمعوجورن و وزن کمتری دارن. از طرف دیگه، گشتاور خروجیشون نسبت به سایزشون کمتره، ولی برای کاربردهایی که سرعت بالا لازمه، مثل دریلهای برقی یا مدلهای هواپیمای رادیویی، عالیان. Inrunnerها به خاطر طراحیشون معمولاً سادست و تعمیرشون هم راحتتره
موتور Outrunner
موتور Outrunner برعکس Inrunner کار میکنه؛ اینجا استاتور داخل روتور قرار داره و روتور دور استاتور میچرخه. این طراحی باعث میشه که گشتاور بیشتری تولید بشه، چون روتور بزرگتره و میتونه آهنرباهای بیشتری داشته باشه. سرعت چرخش Outrunnerها معمولاً کمتر از Inrunnerهاست (مثلاً 2,000 تا 5,000 دور در دقیقه)، ولی برای کاربردهایی که نیاز به قدرت و گشتاور بالا دارن، مثل پهپادها، چرخهای الکتریکی ماشینها یا فنهای بزرگ، بهترین گزینهان. یه مزیت دیگه Outrunner اینه که بهطور مستقیم میتونه پروانه یا بار رو بچرخونه، بدون نیاز به گیربکس.
تفاوتها و انتخاب مناسب
- سرعت و گشتاور Inrunner : ها برای سرعت بالاست، ولی Outrunnerها گشتاور بیشتری دارن.
- اندازه و وزن Inrunner : ها کوچیکتر و سبکن، در حالی که Outrunner ها بزرگتر و سنگینترن.
- کاربرد : اگه دنبال سرعت هستی، Inrunner رو انتخاب کن؛ اگه گشتاور و قدرت میخوای، Outrunner بهتره.
- هزینه Inrunner : ها معمولاً ارزونترن، ولی Outrunnerها به خاطر گشتاور بالا ممکنه گرونتر باشن.
موتورهای BLDC سنسور دار ، اصول و نحوه راهاندازی
موتورهای براشلس (BLDC) از نظر ساختاری با موتورهای DC معمولی تفاوت دارند و با طراحی پیچیدهتر خود، راندمان بالا و کنترل دقیق را تضمین میکنند. این موتورها از سه جزء اصلی (روتور-استاتور-سنسور اثرهال) تشکیل شدهاند که با هماهنگی دقیق، حرکت چرخشی پایدار و کارآمد را فراهم میکنند:
1-روتور
روتور قلب مغناطیسی موتور BLDC است و وظیفه تولید میدان مغناطیسی ثابت را بر عهده دارد.
- جنس و ساختار: روتور معمولاً از آهنرباهای دائمی با کیفیت بالا، مانند نئودیمیوم-آهن-بور (NdFeB)، ساخته میشود. این مواد به دلیل شدت میدان مغناطیسی قوی و مقاومت در برابر دمغناطیس شدن انتخاب شدهاند.
- آرایش مغناطیسی: آهنرباها به صورت زوج قطب (N- S) روی سطح یا داخل روتور قرار میگیرند. تعداد قطبها (مثلاً 2، 4 یا بیشتر) بر سرعت و گشتاور موتور تأثیر میگذارد. موتورهای با قطبهای بیشتر معمولاً گشتاور بالاتری در سرعتهای پایین ارائه میدهند.
- عملکرد: روتور به دلیل میدان مغناطیسی ثابت خود، بدون نیاز به جاروبک یا کموتاتور مکانیکی، با میدان چرخان استاتور تعامل میکند و حرکت ایجاد میشود.
- مزایا: حذف جاروبک باعث کاهش اصطکاک، افزایش عمر مفید، حذف جرقههای الکتریکی و کاهش نیاز به تعمیر و نگهداری میشود.
2-استاتور
استاتور بخش ثابت موتور است که میدان مغناطیسی چرخان را برای به حرکت درآوردن روتور تولید میکند.
- ساختار: استاتور از هستهای آهنی (معمولاً ورقههای سیلیکون استیل برای کاهش تلفات گردابی) و سه مجموعه سیمپیچ برای فازهای A، B و C تشکیل شده است. این سیمپیچها معمولاً به صورت ستاره (Y) متصل میشوند، هرچند اتصال مثلث (Δ) نیز در برخی موتورها استفاده میشود.
- فازبندی: هر فاز با زاویه الکتریکی 120 درجه نسبت به فازهای دیگر قرار دارد. این آرایش امکان تولید میدان مغناطیسی چرخان را فراهم میکند.
- فعالسازی: جریان الکتریکی (تولیدشده توسط درایور الکترونیکی) به ترتیب در فازها تزریق میشود. در روش ذوزنقهای، در هر لحظه دو فاز فعال هستند و فاز سوم خاموش است، که باعث ایجاد گشتاور یکنواخت میشود.
3- سنسورهای اثر هال
سنسورهای اثر هال (Hall Effect Sensors) برای تشخیص موقعیت روتور و هماهنگسازی کموتاسیون الکتریکی ضروری هستند.
- تعداد و آرایش: در موتورهای BLDC سنسور دار، معمولاً سه سنسور هال (H1,H2,H3)با فاصله 120 درجه الکتریکی در اطراف استاتور نصب میشوند.
- عملکرد: هر سنسور به تغییرات میدان مغناطیسی روتور حساس است و سیگنال دیجیتال (0 یا 1) تولید میکند. این سیگنالها موقعیت دقیق روتور را در 6 حالت مختلف مشخص میکنند، که برای کنترل دقیق موتور لازم است.
- اتصال: سنسورها با ولتاژ 5 ولت (یا 3.3 ولت در برخی مدلها) تغذیه میشوند و خروجی آنها از طریق مقاومتهای پول آپ (معمولا در رنج 2.2K~10K) به میکروکنترلر متصل میشود. این مقاومتها از نویز و خطاهای سیگنال جلوگیری میکنند.
- مزایا: سنسورهای هال کنترل سادهتری نسبت به روشهای بدون سنسور (Sensorless) ارائه میدهند، بهخصوص در سرعتهای پایین یا هنگام راهاندازی موتور، که دقت و گشتاور بالایی نیاز است.
هماهنگی اجزا
در موتورهای براشلس روتور، استاتور و سنسورهای هال باید دقیقاً با یکدیگر همگام شوند تا موتور نرم و روان بچرخد. این هماهنگی به کمک میکروکنترلر و درایورهای الکترونیکی محقق میشود. در ادامه، این فرآیند را قدمبهقدم و با زبانی ساده توضیح میدهیم:
مکانیزم چرخش ، موتور چگونه میچرخد؟
برای چرخش روتور (قسمت متحرک موتور)، باید نیرویی مغناطیسی مدام آن را به حرکت درآورد. این نیرو از کجا میآید؟
- نقش استاتور: استاتور با سه فاز A،Bو C مانند یک آهنربای الکتریکی عمل میکند. وقتی جریان الکتریکی به ترتیب در این فازها روشن و خاموش میشود، یک میدان مغناطیسی چرخان ایجاد میکند که انگار دور موتور میگردد. این میدان مثل یک آهنربای خیالی است که مدام در حال چرخیدن است.
- تعامل با روتور: روتور یک آهنربای دائمی با قطبهای شمال و جنوب است. وقتی میدان مغناطیسی استاتور میچرخد، روتور سعی میکند خود را با آن هماهنگ کند، مثل وقتی یک آهنربا دنبال آهنربای دیگری میرود. این تعامل باعث چرخش روتور میشود.
- چرا جریان متناوب است؟: جریان در فازهای استاتور باید بهصورت منظم تغییر کند تا میدان مغناطیسی جهت خود را عوض کند و روتور را به جلو بکشد. در روش ذوزنقهای، این کار با فعال کردن دو فاز در هر لحظه انجام میشود.
2- نقش زاویه 120 درجه: چرا این زاویه مهم است؟
- فازهای استاتور: سه فاز A، B و C با زاویه 120 درجه الکتریکی نسبت به یکدیگر قرار دارند. این یعنی وقتی فاز A در اوج قدرت خود است، فاز B کمی عقبتر و فاز C حتی عقبتر است. این اختلاف زاویه باعث میشود میدان مغناطیسی استاتور بهصورت یک دایره نرم و روان بچرخد.
- سنسورهای هال: سه سنسور هال H1، H2، H3 نیز با زاویه 120 درجه دور موتور نصب شدهاند. هر سنسور وقتی روتور (آهنربای دائمی) از جلوی آن عبور میکند، یک سیگنال دیجیتال (0 یا 1) تولید میکند. این سیگنالها به میکروکنترلر اطلاع میدهند که روتور در چه زاویهای قرار دارد.
- کموتاسیون هر 60 درجه: با وجود سه سنسور و سه فاز، هر بار که روتور 60 درجه الکتریکی میچرخد، یک ترکیب جدید از سیگنالهای هال ایجاد میشود. این ترکیب به میکروکنترلر میگوید که حالا باید کدام دو فاز را فعال کند. مثل این است که موتور هر 60 درجه"سوییچ" میکند و فاز بعدی روشن میشود.
- مثال ملموس: تصور کنید دوچرخهای با سه پدال دارید که هر پدال 120 درجه از دیگری فاصله دارد. هر بار که یک پدال را فشار میدهید، چرخ کمی میچرخد، و وقتی پدال بعدی میرسد، دوباره فشار میدهید. این زاویه 120 درجه مثل فاصله بین پدالهاست که چرخش را نرم نگه میدارد.
3- کنترل الکترونیکی ، مغز کنترلر کجاست؟
موتور BLDC بدون یک مغز هوشمند نمیتواند کار کند. اینجا میکروکنترلر و درایور وارد عمل میشوند.
- نقش میکروکنترلر : میکروکنترلر ATmega48 مانند مغز انسان است که همهچیز را هدایت میکند. سیگنالهای سنسورهای هال را میخواند (مثلاً میفهمد روتور در چه زاویهای است) و تصمیم میگیرد کدام فازها باید روشن شوند. در این پروژه، ATmega48 به دلیل قیمت مناسب و قابلیتهایی مانند ADC و PWM و امکان تعریف اینتراپت خارجی روی اکثر پین های میکرو انتخاب شده است.
- فرآیند کار:
- میکروکنترلر سیگنالهای 3 سنسور هال (مثلاً 101 (یکی از 6 حالت) ) را میخواند.
- با استفاده از یک جدول کموتاسیون از پیش تعریفشده، تشخیص میدهد کدام فازها باید فعال شوند (مثلاً فاز A مثبت و B منفی)
- سیگنالهای PWM پالسهای روشن و خاموش سریع را به قدرت میفرستد تا جریان مناسب به فازها برسد.
- درایور موتور: درایور مانند یک مترجم عمل میکند. سیگنالهای ضعیف میکروکنترلر (5 ولت یا 3.3 ولت) را به ولتاژ و جریان قوی (24 ولت و چند آمپر) تبدیل میکند تا فازهای استاتور فعال شوند. در این پروژه، گیتدرایور IR2101 و MOSFETهای IRF3205 این وظیفه را بر عهده دارند.
- چرا کنترل الکترونیکی؟: در موتورهای DC قدیمی، یک کموتاتور مکانیکی (جاروبک) جریان را بین فازها جابهجا میکرد، اما درموتورهای BLDC این کار الکترونیکی انجام میشود. این روش موتور را بادوامتر میکند، زیرا قطعات مکانیکی که فرسوده میشوند حذف شدهاند.
خب کموتاسیون چیه؟؟!!
کموتاسیون، فرآیند تغییر جریان در فازهای استاتور برای کنترل موتور براشلس (BLDC) هست. که در روش ذوزنقهای:
- هر لحظه، دو فاز فعالن (یکی مثبت، یکی منفی) و فاز سوم خاموشه.
- این روش گشتاور یکنواخت و ولتاژ فاز ذوزنقهای تولید میکنه.
- کموتاسیون توی 6 مرحله انجام میشه که به سیگنالهای هال بستگی داره.
کموتاسیون موتور BLDC با روش ذوزنقهای: یه نگاه به دیاگرام
برای اینکه موتور براشلس (BLDC) بتونه نرم و روان بچرخه، باید جریان تو فازهای استاتور (A، B، C یا همون U، V، W تو این دیاگرام) به ترتیب و با هماهنگی کامل تغییر کنه. این فرآیند به اسم کموتاسیون شناخته میشه و تو موتورهای BLDC سنسوردار، با کمک سیگنالهای سنسورهای هال انجام میشه. تو این بخش، با یه دیاگرام بصری جذاب، این فرآیند رو قدم به قدم توضیح میدیم.
دیاگرام چطور کار میکنه؟
تصویر بالا مراحل کموتاسیون موتور BLDC رو با روش ذوزنقهای نشون میده. این روش به این صورته که تو هر لحظه، دو فاز از سه فاز موتور فعالن (یکی مثبت، یکی منفی) و فاز سوم خاموشه. این کار باعث میشه یه میدان مغناطیسی چرخان ایجاد بشه که روتور رو به حرکت درمیاره. حالا بیایم این دیاگرام رو با هم بررسی کنیم:
- سمت چپ هر مرحله: یه موتور BLDC با سه فاز U، V،W( یا همون A، B، C )نشون داده شده. روتور (قسمت قرمز و آبی با قطبهای N وS ) وسط استاتور قرار داره و جهت میدان مغناطیسی رو نشون میده.
- سمت راست هر مرحله: پل H (H-Bridge) رو میبینیم که با کلیدهای SW1 تا SW6 نشون داده شده. این کلیدها در واقع همون MOSFETها (مثل IRF3205 که تو پروژهمون استفاده کردیم) هستن که جریان رو به فازهای موتور میرسونن.
- سیگنالهای هال: زیر هر مرحله، یه کد سهبیتی به اسم Hall sensor value: abc"" نوشته شده (مثلاً 001، 011، و غیره). این کدها نشون میدن که سه سنسور هال (H1، H2، H3)تو اون لحظه چه سیگنالی میدن. این سیگنالها موقعیت روتور رو مشخص میکنن و به میکروکنترلر (مثل ATmega48 تو پروژه ما) میگن که باید کدوم کلیدها رو روشن کنه.
مراحل کموتاسیون: قدم به قدم
تو روش ذوزنقهای، کموتاسیون تو 6 مرحله انجام میشه که هر مرحله به یه ترکیب خاص از سیگنالهای هال بستگی داره. این مراحل یه چرخه کامل (360 درجه الکتریکی) رو تشکیل میدن و روتور رو به حرکت نگه میدارن. بیایم این مراحل رو با کمک دیاگرام بررسی کنیم:
مرحله 1: Hall sensor value: abc=001
- موقعیت روتور: روتور (قطبهای N و S)طوری قرار گرفته که سنسورهای هال سیگنال 001 (H1=0، H2=0، H3=1)رو تولید میکنن.
- فازهای فعال: تو این حالت، فازU(مثبت) و فاز V( منفی) فعالن. یعنی جریان از فاز U وارد میشه و از فاز V خارج میشه. فاز W خاموشه.
- کلیدهای پل:H تو پل H، کلیدهایSW1 ( High-Side فاز U) و SW4 (Low-Side فاز V) روشنن.بقیه کلید ها (SW2,SW3,SW5,SW6) خاموشن.
- نتیجه: میدان مغناطیسی ایجادشده روتور رو به سمت موقعیت بعدی میکشونه.
مرحله 2: Hall sensor value: abc=011
- موقعیت روتور: روتور یه کم چرخیده و حالا سیگنال هال 011 (H1=0,H2=1,H3=1)رو داریم.
- فازهای فعال: اینجا فاز U (مثبت) و فاز W (منفی) فعالن. فاز V خاموشه.
- کلیدهای پل H : SW1 ( High-Side فاز U) و SW6 (Low-side فاز W) روشنن.
- نتیجه: روتور یه قدم دیگه میچرخه و به موقعیت بعدی میره.
مرحله 3: Hall sensor value: abc=010
- موقعیت روتور: سیگنال هال به 010 (H1=0,H2=1,H3=0) تغییر کرده.
- فازهای فعال: فاز V (مثبت) و فاز W (منفی) فعالن. فاز U خاموشه.
- کلیدهای پل H : SW3 ( High-Side فاز V) و SW6 (Low-side فاز W) روشنن.
- نتیجه: میدان مغناطیسی دوباره تغییر جهت میده و روتور رو هل میده.
مرحله 4: Hall sensor value: abc=110
- موقعیت روتور: روتور یه کم چرخیده و حالا سیگنال هال 110 (H1=1,H2=1,H3=0)رو داریم.
- فازهای فعال: اینجا فاز V (مثبت) و فاز U (منفی) فعالن. فاز W خاموشه.
- کلیدهای پل H : SW3 ( High-Side فاز V) و SW2 (Low-side فاز U) روشنن.
- نتیجه: روتور یه قدم دیگه میچرخه و به موقعیت بعدی میره.
مرحله 5: Hall sensor value: abc=100
- موقعیت روتور: روتور یه کم چرخیده و حالا سیگنال هال 100 (H1=1,H2=0,H3=0)رو داریم.
- فازهای فعال: اینجا فاز W (مثبت) و فاز U (منفی) فعالن. فاز V خاموشه.
- کلیدهای پل H : SW3 ( High-Side فاز V) و SW2 (Low-side فاز U) روشنن.
- نتیجه: روتور یه قدم دیگه میچرخه و به موقعیت بعدی میره.
مرحله 6: Hall sensor value: abc=101
- موقعیت روتور: روتور یه کم چرخیده و حالا سیگنال هال 101 (H1=1,H2=0,H3=1)رو داریم.
- فازهای فعال: اینجا فاز W (مثبت) و فاز V (منفی) فعالن. فاز U خاموشه.
- کلیدهای پل H : SW5 ( High-Side فاز W) و SW4 (Low-side فاز V) روشنن.
- نتیجه: روتور به موقعیت اولیه برمیگرده و چرخه تکرار میشه.
چرا این مراحل مهمن؟
این 6 مرحله یه چرخه کامل رو تشکیل میدن و باعث میشن موتور بهصورت پیوسته بچرخه. هر مرحله معادل 60 درجه الکتریکیه (360 / 6 = 60). سنسورهای هال با دادن سیگنالهای 0 و 1 به میکروکنترلر میگن که روتور کجاست، و میکروکنترلر (مثل ATmega48 تو پروژه ما) با یه جدول کموتاسیون تصمیم میگیره که کدوم کلیدها رو روشن کنه. تو پروژه ما:
- High-Side( SW1, SW3, SW5) که پین های (PD3, PD5, PD6) هستن با PWM کنترل میشن تا سرعت تنظیم بشه
- Low-side(SW2, SW4, SW6) که پین های (PD2,PD7,PD4) هستن با GPIO روشن و خاموش میشن
تصویر زیر درک بهتری از تغییر رفتار فازها نسبت به تغییرات سنسورها رو بهمون میده :
هر 6 مرحله بالا شامل حالت سنسورها و وضعيت سوئیچ ها بصورت یکجا در جدول زیر اومده البته با توجه به این نکته که high-side با PWM وlow-side با GPIO کنترل میشه، جدول کموتاسیون به این شکله:
امیدواریم تا اینجای کار گیج نشده باشید . چون قراره بریم سراغ بخش سخت افزار و کد نویسی !!!
پیادهسازی سختافزار کنترل موتور براشلس سنسوردار
دانلود عکس با کیفیت شماتیک : schematic.jpg
در این بخش، به طراحی و پیادهسازی مدار سختافزاری برای کنترل موتور براشلس 24 ولت سنسوردار با استفاده از ماسفت IRF3205، گیتدرایور IR2101، سنسور جریان ACS712، تقسیم مقاومتی برای پایش ولتاژ ورودی و خوندن دما توسط NTC و پتانسیومتر برای کنترل سرعت میپردازیم. هدفمون اینه که یه سیستم کنترلی بسازیم که هم کارآمد باشه، هم ایمن، و هم برای علاقهمندان به الکترونیک قابلفهم و پیادهسازی. علاوه بر توضیح قطعات و نحوه اتصالشون، یه نگاه ویژه به گیتدرایور و نقشش تو این پروژه می اندازیم.
معرفی قطعات و نقششون
گیتدرایور IR2101
گیتدرایور چیست و چرا بهش نیاز داریم؟
گیتدرایور یه مدار واسطهست که سیگنالهای ضعیف میکروکنترلر (مثلاً 5 ولت یا 3.3 ولت) رو به سیگنالهای قویتر (مثلاً 10 تا 15 ولت) تبدیل میکنه تا بتونه گیت MOSFETها رو بهدرستی روشن و خاموش کنه. تو پروژه ما، MOSFETهای IRF3205 برای سوئیچ کردن جریانهای بالا (تا 10 آمپر یا بیشتر) توی فازهای موتور BLDC استفاده میشن. اما این MOSFETها برای کاركرد درست به چند چیز نیاز دارن:
- ولتاژ گیت: برای اینکه IRF3205 کامل روشن بشه ولتاژ گیت باید بین 10 تا 15 ولت باشه. میکروکنترلر ATmega48 فقط میتونه 5 ولت بده، پس گیتدرایور این ولتاژ رو تقویت میکنه.
- سرعت سوئیچینگ: موتور BLDC با سیگنالهای PWM با فرکانس مثلاً 15 کیلوهرتز کار میکنه(فرکانس سوئیچینگ میتونه بین 1 تا 20 کیلو باشه )، یعنی MOSFETها باید خیلی سریع روشن و خاموش بشن. گیتدرایور این سوئیچینگ رو سریع و تمیز انجام میده تا تلفات حرارتی کم بشه.
- حفاظت: گیتدرایورهایی مثل IR2101 قابلیتهایی مثل جلوگیری از اتصال کوتاه (shoot-through) دارن، یعنی نمیذارن MOSFETهای High-Side و Low-Side یه فاز همزمان روشن بشن که سوییچ ها آسیب ببینه.
- بوت استرپ برای High-Side : تو پل H که برای کنترل موتور BLDC استفاده میشه، MOSFETهای High-Side به ولتاژ بالاتری از منبع تغذیه یا همون لینک DC (24 ولت) نیاز دارن. گیتدرایور IR2101 با یه تکنیک به اسم بوتاسترپ این ولتاژ رو تأمین میکنه.
- نقش IR2101 تو پروژه: سه تا IR2101 یکی برای هر فاز، سیگنالهای PWM از ATmega48 رو به ولتاژ مناسب برای گیت IRF3205ها تبدیل میکنن.
ماسفت IRF3205
IRF3205 یه MOSFET نوع N-Channelهستش که برای سوئیچینگ جریانهای بالا تو ولتاژهای متوسط (مثل 24 ولت) طراحی شده. ویژگیهای کلیدی:
- ولتاژ درین-سورس: (Vds) تا 55 ولت، که برای سیستم 24 ولتی ما کاملاً مناسبه.
- جریان درین: (Id) تا 110 آمپر (در شرایط ایدهآل)، ولی تو پروژه ما جریان موتور زیر 10 آمپره، پس حاشیه ایمنی خوبی داریم.
- مقاومت: Rds(on) فقط 8 میلیاهم در (Vgs=10V)، یعنی تلفات حرارتی خیلی کمه.
- دیود فلایبک داخلی: از مدار در برابر ولتاژهای معکوس ناشی از رفتار سلفی موتور محافظت میکنه.
سنسور جریان ACS712
ACS712 یه سنسور جریان هالافکته که جریان عبوری از موتور رو اندازه میگیره. ویژگیها:
- رنج اندازهگیری: بسته به مدل از 5A تا 100A موجوده که ما در پروژمون از مدل 20 آمپرش استفاده می کنیم
- خروجی آنالوگ: تو حالت بی باری، خروجی حدود 2.5 ولت نیمه (VCC=5V)هست که با هر آمپر تغییر، خروجی حدود 100 میلیولت (بسته به مدل) تغییر میکنه.
- ایزولاسیون: جریان موتور رو بدون اتصال مستقیم به مدار کنترل اندازه میگیره، که ایمنی رو بالا میبره.
نقش ACS712 تو پروژه: جریان موتور رو اندازه گیری میکنه و اگه جریان از 10 آمپر بیشتر بشه، میکروکنترلر موتور رو خاموش میکنه. خروجی سنسور به ADC1 متصل میشه.
برای آشنایی بیشتر با سنسور جریان ACS712 میتونین به مقاله آموزشی مربوطه در وبلاگ اصفهان درایو مراجعه کنید.
تقسیم مقاومتی برای اندازه گیری ولتاژ
برای اندازهگیری ولتاژ ورودی (24 ولت)، از یه تقسیم مقاومتی استفاده میکنیم تا ولتاژ رو به محدوده قابلقبول برای ADC میکروکنترلر (0 تا 5 ولت) برسونیم.
- طراحی: مثلاً با مقاومتهای 3.3 کیلواهم و 33 کیلواهم:
- Vout = Vin × (R23 / (R23 + R22)) = 24 × (3.3 / (3.3+33)) = 2.18V
- این یعنی 24 ولت به 2.18 ولت تبدیل میشه، که برای خوندش با ADC میکرو کافیه.
- محدوده حفاظت: اگه ولتاژ ورودی از 28 ولت بیشتر یا از 20 ولت کمتر بشه، میکروکنترلر موتور رو خاموش میکنه.
نقش تقسیم مقاومتی روی VBUS تو پروژه: خروجی تقسیم مقاومتی به ADC1 متصل میشه تا ولتاژ ورودی اندازه گیری بشه.
پتانسیومتر برای کنترل سرعت
پتانسیومتر 10 کیلو اهمی یه راه ساده برای تنظیم سرعت موتوره.
- عملکرد: خروجی پتانسیومتر (0 تا 5 ولت) به ADC0 متصل میشه. میکروکنترلر این ولتاژ رو میخونه و Duty Cycle سیگنال PWM رو تنظیم میکنه (مثلاً 0 تا 100%).
- فیلتر نویز: یه خازن 100 نانوفاراد موازی با پتانسیومتر نویز رو کم میکنه.
نقش تو پروژه: پتانسیومتر به کاربر اجازه میده سرعت موتور رو بهصورت دستی کنترل کنه.
اندازهگیری دما با NTC
برای اندازهگیری دمای MOSFETها، از یک سنسور NTC با مقاومت 10 کیلواهم در دمای 25 درجه سانتیگراد استفاده شده است. این NTC به صورت سری با یک مقاومت ثابت 10 کیلواهم (R21) قرار گرفته و به تغذیه 5 ولت (VCC) و زمین (GND) متصل شده است. نقطه اتصال NTC و مقاومت که TEMP نامیده میشود به پین ADC1 میکروکنترلر وصل شده تا ولتاژ خروجی خوانده شود.
برای آشنایی بیشتر با سنسور دمای NTC میتونین به مقاله آموزشی مربوطه در وبلاگ اصفهان درایو مراجعه کنید.
نحوه کار مدار:
این مدار یک تقسیمکننده ولتاژ است. ولتاژ خروجی (Vout) در نقطه TEMP با فرمول زیر محاسبه میشود:
Vout = VCC * (R21 / (RNTC + R21))
که در آن VCC برابر 5 ولت، R21 برابر 10 کیلواهم و RNTC مقاومت NTC در دمای مورد نظر است. در دمای 25 درجه سانتیگراد، RNTC برابر 10 کیلواهم است، بنابراین:
Vout = 5 * (10k / (10k + 10k)) = 2.5V
تبدیل مقدار ADC به دما:
مقدار ADC که بین 0 تا 1023 است به ولتاژ تبدیل میشود:
Vout = ADC * (5 / 1023)
سپس مقاومت NTC با فرمول زیر محاسبه میشود:
RNTC = R21 * ((VCC - Vout) / Vout)
برای محاسبه دما از معادله Steinhart-Hart استفاده شده است. ابتدا مقاومت NTC به دمای کلوین (T) تبدیل میشود:
1/T = A + B * ln(RNTC) + C * (ln(RNTC))^3
که در آن A = 0.001129148، B = 0.000234125 و C = 0.0000000876741 ضرایب Steinhart-Hart برای NTC هستند. سپس دما به درجه سانتیگراد تبدیل میشود:
) درجه سانتیگراد) = T(کلوین) T - 273.15
محدوده دما:
دمای MOSFETها معمولاً بین 0 تا 100 درجه سانتیگراد تغییر میکند. در 0 درجه، RNTC حدود 25 تا 30 کیلواهم و در 100 درجه حدود 3 تا 4 کیلواهم است. این تغییرات، ولتاژ خروجی را بین 1.67 ولت (در 100 درجه) تا 3.33 ولت (در 0 درجه) میبره که به مقادیر ADC حدود 342 تا 681 تبدیل میشود.
نکات:
برای دقت بیشتر، باید ضرایب Steinhart-Hart را از دیتاشیت NTC خاص استخراج کرد. همچنین، اضافه کردن یک خازن (مثلاً 100 نانوفاراد) بین TEMP و GND میتواند نویز را کاهش دهد.
خب، حالا وقتشه که به سراغ کد نویسی بریم. ما یه کد تقریباً کامل با میکروکنترلر ATmega48 و کامپایلر CodeVision نوشتیم که به شرح زیر است:
امیدواریم از این آموزش استفاده برده باشید!
با سایر آموزش های اصفهان درایو همراه باشید!