جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > کنترل موتور براشلس دی سی دارای سنسور با آردوینو

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

اسفند 19, 1396
ارسال شده توسط mjavad
پروژه، پروژه های آردوینو، پروژه های رایگان
کنترل موتور براشلس دی سی با آردوینو

به نام خدا

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

 

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

دو نوع موتور BLCD وجود دارد، با حسگر و بدون حسگر. موتور BLCD با حسگر  اثر میدان برای تشخیص موقعیت روتور استفاده میکند در حالی که موتور BLCD بدون حسگر از روش دیگری به نام BEMF (نیروی الکترومغناطیسی بازگشتی )بهره میگیرد. این موضوع نشان میدهد که چگونه با آردوینو یک موتور BLCD با حسگر را کنترل کنیم. موتور استفاده شده در این پروژه از نوع PC CD-ROM (موتور Spindle)

موتور BLDC (با حسگر یا بدون حسگر) یک موتور دی سی 3 فاز است، یعنی 3 سیم پیچ روی هسته ی استاتور قرار دارد. دو سیم پیچ در یک زمان انرژی میگیرند تا میدان الکتریکی چرخشی ایجاد شود. این روش نسبتا آسان است، اما برای جلو گیری از آهنربا شدن دائمی روتور و قفل شدن آن با استاتور ، تحریک باید به روش خاصی در حالی که از موقعیت دقیق آهنربا های روتور اطلاع داریم انجام شود.

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

برای کنترل این موتور ،ما نیاز به یک پل 3 فاز داریم، که المان های اصلی آن 6 تا MOSFET است. مدار کلی آن در زیر نشان داده شده است.

 

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

 

موتور BLDC با حسگر دارای 3 حسگر اثر هال (A،B و C) برای دانستن موقعیت روتور است، این سنسور ها در تصویر زیر نشان داده شده است. پین های موتوری که ما استفاده کرده ایم در تصویر زیر آمده است ( ممکن است موتور های دیگر سامل پین های دیگری باشند).

در این موتور هر سنسور داای 4 پین، VCC یا H+ و GND یا H- و دو خروجی (بعضی از سنسور ها دارای 3 پین هستند: VCC ، GND و خروجی ).

 

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

ما یک مقایسه کننده ی آنالوگ  ( IC مقایسه کننده چهار گانه LM339N ا) برای هر یک اضافه کرده ایم بنابراین خروجی هر سنسور (2 خروجی، +و – ) به ورودی مقایسه کننده وصل می شوند( 2 ورودی و non-inverting و inverting ) همانطور که در طرح پایه مدار آمده ، در پایان ما 3 خروجی از هر سه سنسور اثر هال دریافت کرد ایم.

برای هر سنسور خروجی بالای دیجیتال 180 درجه ی الکتریکی و خروجی پایین دیجیتال  180 درجه الکتریکی دیگر را حس میکند. شکل زیر نشان دهنده ی  ارتباط بین خروجی های سنسور  ولتاژ مورد نیاز موتور برای فاز های A ، B و C است.

 

 

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

با توجه به سنسور های اثر هال پل 3 فاز تحت عنوان جدول زیر نشان داده می شوند.

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

قطعات مورد نیاز:

1 – برد آردوینو

2 – موتور dc براشلس با سنسور

3 – MOSFET N-TYPE X 06N03LA

4 – IC کنترل کننده دارای سه گیت X IR2104S

5 – IC  مقایسه گر چهارگانه  LM339N

6 – پتانسیومتر 10 کیلو اهم یا کمتر

7 – 3 تا مقاومت 10 کیلو اهم

8 – 7 تا مقاومت 100 اهم

9 – 3 تا دیود IN4148

10 – 3 تا خازن 10 میکرو فاراد

11 – 3تا خازن 2.2 میکرو فاراد

12 – منبع تغذیه 12 ولت

13 – برد بورد

14 – سیم نری مادگی

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

مدار کلی طرح در بالا آمده است.

 

(تمام پایه های زمین به هم متصل میشوند).

در مدار IC IR2104S سه گیت وجود دارد، هر یک برای کنترل یک MOSFET HIGH SIDE و یک MOSFET LOW SIDE استفاده می شود، سوئیچینگ بین HIHJ SIDE  و LOW SIDE با توجه به خطوط کنترل (IN  و SD ) است. شکل زیر نمودار زمان خروجی و ورودی نشان میدهد:

 

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

 

پتانسیومتر 10 کیلو برای کنترل سرعت موتور  DC براشلس استفاده ، که تبدیل به سیگنال PWM میشود.هر وقت یک MOSFET HIGH SIDE و LOW SIDE فعال باشد، یعنی یک پین PWM فعال وجود دارد ( پین های 4 و 2 یا 6 از آردوینو)

جدول زیر پین های فعال آردوبنو با توجه به وضعیت سنسور های اثر هال آورده شده است(پین های 8 ، 9 و 10 )

 

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

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

در این پروژه ما یک کد نرم افزاری PWM را فعال کرده ایم، چون ما به سیگنال PWM فعال در پین های 2 ، 4 و 6 (که در یک لحظه تنها یکی از آن ها فعال است )، برای این که ما از تایمر 2 ماژول که آن را با پرس کالر 1/8 تنظیم کرده ایم استفاده کرده ایم، که این به این معنی که فرکانس سینگال  pwm حدود 7.8KHz ( برابر 16MHz/(256*8)) و دقت 8 بیت است.

ماژول ADC تنها برای خواندن از کانال 0 تنظیم شده است.

وقفه آردوینو  در تغییر پین های 8 ، 9 و 10 (ورودی سنسور اثر میدان) برای تغییر بهتر فعال می شود

PORTB پین 8 تا 13 آردوینو uno

PORTD پین های 0 تا 7 آردوینو uno .

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

[maxbutton id=”208″ url=”http://avatrobo.ir/wp-content/uploads/2018/03/Sensored-brushless-DC-motor-control-with-Arduino.txt” ]

// Arduino sensored BLDC (brushless DC) motor control code

byte motor_speed, bldc_step, pwm_pin = 2;
void setup() {
  DDRD  |= 0xFC;                     // Configure pins 2, 3, 4, 5, 6 and 7 as outputs
  PCICR  = 1;                        // Enable pin change interrupt for pins 8 to 13
  PCMSK0 = 7;                        // Enable pin change interrupt for pins 8, 9 and 10
  // Timer2 configuration
  TCCR2A = 0;
  TCCR2B = 2;                        // Timer2 prescaler = 1/8 (Timer2 clock = 2MHz)
  TCNT2  = 0;                        // Timer2 preload value = 0
  // ADC module configuration
  ADMUX  = 0x60;                     // Configure ADC module and select channel 0
  ADCSRA = 0x84;                     // Enable ADC module with 16 division factor (ADC clock = 1MHz)
  // BLDC motor first move
  bldc_step = PINB & 7;              // Read hall effect sensors status (PINB: read from PORTB which is arduino pins 8..13)
  bldc_move();                       // Move the BLDC motor (first move)
}
ISR (PCINT0_vect){
  bldc_step = PINB & 7;              // Read and save hall effect sensors status (PINB: read from PORTB which is arduino pins 8..13)
  bldc_move();                       // Move the BLDC motor
}
void bldc_move(){                    // BLDC motor move function according to hall effect sensors status
  switch(bldc_step){
    case 1:
      PORTD = 0x48;
      pwm_pin = 2;
      break;
    case 2:
      PORTD = 0x24;
      pwm_pin = 4;
      break;
    case 3:
      PORTD = 0x60;
      pwm_pin = 4;
      break;
    case 4:
      PORTD = 0x90;
      pwm_pin = 6;
      break;
    case 5:
      PORTD = 0x18;
      pwm_pin = 2;
      break;
    case 6:
      PORTD = 0x84;
      pwm_pin = 6;
      break;
    default:
      PORTD = 0;
      break;
  }
}
void loop() {
  ADCSRA |= 1 << ADSC;               // Start conversion
  while(ADCSRA & 0x40);              // Wait for conversion complete
  motor_speed = ADCH;                // Read ADC data (8 bits)
  // Software PWM
  if(motor_speed < 250){
    while(TCNT2 < motor_speed) ;
    digitalWrite(pwm_pin, LOW);
  }
  if(motor_speed > 0){
    while(TCNT2 >= motor_speed) ;
    digitalWrite(pwm_pin, HIGH);
  }
}

 

 

 

برچسب ها: آردوینو یونوآموزش کنترل موتور براشلس دی سی با آردوینوبرنامه کنترل موتور براشلس کنترل موتور براشلس دی سی با آردوینوطریقه ی کنترل موتور براشلس دی سی با آردوینوکد برنامه کنترل موتور براشلس دی سی با آردوینوکنترل موتور براشلسکنترل موتور براشلس دی سی با آردوینوموتور براشلس
قبلی تولید تن صدا با ضربه زدن به انگشتان دست با استفاده از آردوینو
بعدی دانلود پروژه ی جداسازی (Segmentation) در متلب باپردازش تصویر

پست های مرتبط

اردیبهشت 9, 1398

برنامه نویسی به زبان پایتون برای رزبری پای

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول

mjavad
ادامه مطلب

بهمن 2, 1397

ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

آرمان آوات روبو نه تنها تغییر اکنون و تعریف آینده آموزش عملی و کاربردی در ایران، بلکه توسعه همین تغییر به کل دنیا است. نسخه بین المللی آوات روبو، هم اکنون در حال برنامه ریزی است و کارهای اولیه آن برای فعالیت در یوتیوب و یک سایت انگلیسی در حال انجام است.

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.