موتورهای BLDC یا همان براشلس یا بدون جاروبک موتورهایی هستند که جاروبک از داخل آنها حذف شده و رتور بدون سیم پیچ است.
امروزه کاربرد این نوع موتورها بسیار زیاد شده است به طوری که در بیشتر وسایل از قبیل کوادکور، CDROM، هارد، برخی از پرینترها و دستگاه های فتوکپی و …. استفاده می شود.
از مزایای این نوع موتورها می توان به موارد زیر اشاره کرد:
کاهش سایز این نوع موتور در مقایسه با مدل های دیگر
راندمان بالاتر
سرعت بیشتر
پاسخ سریعتر
گشتاور راه اندازی بالا
انتقال حرارت بهتر
بدون نیاز به نگهداری
اما برای همه مزیت باید هزینه داد زیرا این نوع موتورها قیمت بالاتری دارند اما این قیمت بالاتر فقط مربوط به موتور نمی شود، زیرا این موتورها برای راه اندازی نیاز به درایور دارند و با دادن ولتاژ 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 استفاده کرده ایم.
نحوه سیم کشی به صورت زیر است:
برنامه نیز به صورت زیر باید نوشته شود:
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 را به کامپیوتر وصل کنید و از طریق پورت سریال آن را کنترل کنید. بدین منظور برای کاهش سرعت باید کلید “-” و برای افزایش سرعت کلید “+” را فشار دهید.
این آموزش در بخش الکترونیک سایت ارسال شده، طبق تغییرات اخیر مجموعه، پشتیبانی بخش الکترونیک در موارد تخصصی متوقف شده؛ متأسفانه تا اطلاع ثانوی نمیتونیم پاسخگوی سؤالات فنی شما باشیم.
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
عالی
عالی و بی نظیر.
کاملا متوجه و اینکه مشکلم 100 درصد حل میشه.
خوشحالیم که برات کاربردی بوده نادر عزیز 🙂
عالی بود.
یک آموزش عالی
نحوه کارکرد براشلس رو با آموزش شما یاد گرفتم
خوشحالیم که این آموزش براتون کاربردی بوده محمدرضای عزیز 🙂
سلام وقت بخیر
اگر بخوایم دور رو معکوس کنیم باید چکار کنیم ؟؟
سلام
متأسفانه با غیرفعال شدن موقتی (یا شاید دائمی!) بخش الکترونیک مجموعه، سایر اعضای تیم اطلاعی در مورد جزئیات فنی پیادهسازی این آموزش نداریم.
عذرخواهیم که نمیتونیم راهنماتون باشیم.
عالی بود مقاله تون
دیدم نسبت به براساس دی سی ها باز شد.
خوشحالیم که این آموزش براتون کاربردی بوده. موفق باشید.
سلام
من موتور رو نصب کردم طبق همین نقشه. ولی موتور روون نمیچرخه. حس میکنم به تکی از پالس ها رو اشتباه دریافت میکنه. چون توی سرعت پایین مشخص میشه یکی از فرمان ها برعکس بقیه است. یعنی اگه همه ساعتگرد هستن، یکی اون وسط پاد ساعتگرد هست. متن برنامه رو هم عینا کپی کرده بودم. چطور میشه این مشکل رو حل کرد؟
ممنون میشم راهنمایی کنید.
سلام
از سلامت موتور اطمینان دارید؟ موتور براشلس رو جداگانه به جریان وصل کنید و حرکتش رو تست کنید. اگر درست بود، فقط مدار و برنامه راهانداز موتور رو وصل کنید ببینید باز هم ایراد داره یا نه.
سلام
بله موتور رو تست کردم سالم هست ولی هنوز روون حرکت نمیکنه با مدار بالا
چون معمولاً از این موتورها برای حرکتهای step step استفاده میشه، بین هر حرکت یک زمان توقف (delay) در نظر گرفته میشه. سعی کنید این زمانهای رو دستکاری کنید یا حذفشون کنید تا به وضعیت حرکت ایدهآلتون برسید.
سلام ممنون بابت مطالب مفیدتون
یه اشکال میشه به این برنامه گرفت توی خط 15 دستور if نوشته شده برای فهمیدن کارکتر – و چند خط بعد دستور else استفاده شده برای فهمیدن کارکتر + بنظرم بهتر بود بجای else از else if استفاده کنید چون بجای کارکتر + هرکارکتری هم که وارد بشه دستور جمع اجرا میشه
سلام امیر عزیز
دقیقاً همینطوره! احسنت به ریزبینی و دقتتون.
سلام وقت بخیر
من می خواهم این پروژه رو روی Bascom پیاده سازی کنم، اما نمی دونم باید چه کدی بزنم، میشه همین پروژه رو با بسکام هم در سایت قرار بدهید؟
باتشکر
سلام
ممنون از پیشنهادتون. حتماً. علیالحساب یک فایل راهنما برای شما ایمیل شد. امیدوارم براتون مفید باشه.
سلام چطور می توانم با رادیو کنترل هم موتور رو به سمت راست و هم به سمت چپ بگردونم
با سلام
چندین راه وجود دارد. یکی از آنها این است که مدار کنترل کننده را سمت موتور قرار دهید و دو کلید برای تعیین جهت موتور از طریق رادیویی ارسال کنید.
سلام، منظورتون از صفر توی مراحل چی هست؟ منظور همون زمین(0ولت) هست یا مدار باز؟
با سلام
منظور زمین یا صفر ولت یا GND هست.
با سلام.
علت استفاده از درایور چیه؟
چرا نمیشه برد آردیونو رو مستقیم به موتور وصل کرد؟
با سلام
همان طور که در مطلب هم گفته شده است، درایور جهت تامین جریان موتور می باشد.
میکرو به تنهایی نمی تواند موتور را راه اندازی کند و نیاز به تقویت دارد که این کار را درایور انجام می دهد.
سلام با سپاس از مطالب مفیدتون
سلام
خواهش میکنم
سلام، راهی هست که آردوینو رو به کامپیوتر متصل نکنیم و سرعت موتور ثابت بمونه؟
سلام
بله امکان پذیر است.
متغییر wait را هر مقداری که میخواهید قرار دهید و برنامه را پروگرام کنید.
کاهش سرعت باید کلید “-” و برای افزایش سرعت کلید “+” را فشار دهید. منظورتون چیه بیشتر توضیح دهید ممنون
سلام
شما باید ماژول آردوینو را به کامپیوتر متصل کنید و یک ارتباط سریال بین این دو ایجاد کنید. زمانی که کارکتر “-” و “+” را به میکرو ارسال کنید سرعت تغییر می کند (کارکتر “-” و “+” منظور همان – و + ماشین حساب است.