اطلاعیه

Collapse
No announcement yet.

راه اندازی موتور براشلس (BLDC)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : راه اندازی موتور براشلس (BLDC)

    حالا فهمیدم.
    بله وقتی ولتاژ به موتور اعمال بشه قطعا روی خروجی این مدار تاثیر میزاره ولی چون ما میدونیم منتظر رسیدن کدوم سیم پیچ به نقطه مورد نظر هستیم فقط به خروجی اون سیم پیچ نگاه میکنیم و با سیم پیچ های دیگه کاری نداریم.مثلا ما سیم پیچ 2 رو تحریک میکنیم و منتظر میمونیم که سیم پیچ 3 به نقطه ی مورد نظر برسه. وقتی رسید تشخیص میدیم و سیم پیچ 3 رو هم تحریک میکنیم.اما وقتی سیمپیچ 2 رو تحریک میکنیم میکرو فکر میکنه که سیمپیچ 2 هم به نقطه مورد نظر رسیده. ولی ما فقط منتظر سیمپیچ 3 هستیم. به این ترتیب فوقع ما وقع :wow:

    ببخشید اگر بد توضیح دادم.

    اضافه شده در تاریخ :
    دوستان کمک کنید :cry2: :cry2:

    برای ماسفت ها چیکار کنیم؟

    دیدگاه


      #17
      پاسخ : راه اندازی موتور براشلس (BLDC)

      من شماتیکش قسمت درایور رو داخل پروتل کشیدم
      به خاطر تغییر ماسفت ها شاید یه نمه مقدار مقاومت ها تغییر بکنه ، ولی اصلی شماتیک همین می مونه
      خودم دارم روی pcb اون کار می کنم، از بچه ها کسایی که می تونند pcb طراحی کنند هم ببینند می تونند کاری کنند، از pcb ما بهتر بود اونو بزنیم
      فایل های پیوست شده

      دیدگاه


        #18
        کمک درباره راه اندازی و تغییر سرعت موتور براشلس

        با سلام خدمت همه.
        واقعا نیاز به کمک دارم.خواهش میکنم هرکسی میتونه کمکم کنه:
        من باید بوسیله AVR یک موتور براشلس را راه اندازی کنم و مهمتر از اون بتونم سرعتش را از صفر تا ماکزیمم حالت تغییر بدم.در ضمن اسپید کنترل هم دارم و مشکلات موجود اینکه نمیدونم سیگنالی که به اسپید میدم در دو حالت کنترل سرعت و راه اندازی چه مشخصاتی باید داشته باشه .مشکل دیگه اینکه بلد نیستم از تایمرهای میکرو استفاده کنم.
        خواهشمندم در صورتیکه کسی قبلا این کار را کرده و یا مشخصات سیگنال را میدونه،منو راهنمایی کنه.
        :angry:

        دیدگاه


          #19
          پاسخ : راه اندازی موتور براشلس (BLDC)

          عزیز من پست اول رو بخون ! شما چند جا دیگه هم پست دادید
          شما باید اول استفاده از تایمرها رو یاد بگیری
          بعد چند تا موتور معمولی راه اندازی کن
          و در آخر برسی به موتور براشلس !

          دیدگاه


            #20
            پاسخ : راه اندازی موتور براشلس (BLDC)

            نوشته اصلی توسط فرشاد اکرمی
            من شماتیکش قسمت درایور رو داخل پروتل کشیدم
            به خاطر تغییر ماسفت ها شاید یه نمه مقدار مقاومت ها تغییر بکنه ، ولی اصلی شماتیک همین می مونه
            خودم دارم روی pcb اون کار می کنم، از بچه ها کسایی که می تونند pcb طراحی کنند هم ببینند می تونند کاری کنند، از pcb ما بهتر بود اونو بزنیم
            با سلام،

            اگه امکان داره، فایل PDF شماتیک رو هم بزارین.....

            مرسی
            مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

            Sh_Nourbakhsh@Yahoo.com

            http://s2.picofile.com/file/7170362468/_Wall_e_.jp

            دیدگاه


              #21
              پاسخ : راه اندازی موتور براشلس (BLDC)

              نوشته اصلی توسط aivhl
              با سلام،

              اگه امکان داره، فایل PDF شماتیک رو هم بزارین.....

              مرسی
              همون پست اول، از اون لینک هم شماتیک هم توضیحات تکمیلی رو می تونید بگیرید
              و با عرض پوزش شماتیکی که من کشیدم اشتباه شده !
              دیروز دیدم نمی تونم وقت بزازم pcb بکشم ، اومدم همینجوری فقط قسمت ماسفت هارو روی برد سوراخ دار درست کنم که دیدم جهت ماسفت هارو اشتباه کشیدم !
              امشب هم اگر وقت کنم زودتر برم خونه یه تستی می کنم ببینم جواب میده یا نه

              دیدگاه


                #22
                پاسخ : راه اندازی موتور براشلس (BLDC)

                PCB نکته خاصی توش باید رعایت بشه؟
                اگه با پرتئوس می خواین من واستون بزنم !!
                { خلاف قوانین ، پاک شد }

                دیدگاه


                  #23
                  پاسخ : راه اندازی موتور براشلس (BLDC)

                  همین الان رسیدم خونه
                  فایل pdf اصلی رو ضمیمه کردم
                  تنها میکلی که هست ، من جهت ماسفت هارو اشتباه کشیدم ، که باید جهتشون عوض بشه ( پایه ها )
                  فایل های پیوست شده

                  دیدگاه


                    #24
                    پاسخ : راه اندازی موتور براشلس (BLDC)

                    من دیدم که وقت نمی کنم برسم pcb بکشم ! نهایت هر شب 2 ساعت خونم که اونم ....
                    همونطور که گفتم فقط ماسفت هارو روی فیبر سوراخدار لجیم کردم
                    و فقط از پایه درین کشیدم روی برد بورد ، تغذیه مدار ماسفت ها هم 9 ولت 3 آمپر دادم
                    طبق راهنمایی که اینجا دیده بودم http://users.tinyworld.co.uk/flecc/brushless_motor.html فقط به ماسفت ها 0 و 1 دادم ، یه برنامه ساده ! موتور با صدای زیاد و تلو تلو زدن شدید اولیه شروع به کار کرد ! اونم چه شروع به کاری
                    کلاً داد میزد که اصولی راه اندازی نشده !
                    فقط یک مشکلی ، ماسفت های PNP شدید داغ می کنند !
                    یه تستی باید بکنم ببینم ولتاژ هایی که میفته رو سرش درستند یا نه !

                    دیدگاه


                      #25
                      پاسخ : راه اندازی موتور براشلس (BLDC)

                      نوشته اصلی توسط فرشاد اکرمی
                      من دیدم که وقت نمی کنم برسم pcb بکشم ! نهایت هر شب 2 ساعت خونم که اونم ....
                      همونطور که گفتم فقط ماسفت هارو روی فیبر سوراخدار لجیم کردم
                      و فقط از پایه درین کشیدم روی برد بورد ، تغذیه مدار ماسفت ها هم 9 ولت 3 آمپر دادم
                      طبق راهنمایی که اینجا دیده بودم http://users.tinyworld.co.uk/flecc/brushless_motor.html فقط به ماسفت ها 0 و 1 دادم ، یه برنامه ساده ! موتور با صدای زیاد و تلو تلو زدن شدید اولیه شروع به کار کرد ! اونم چه شروع به کاری
                      کلاً داد میزد که اصولی راه اندازی نشده !
                      فقط یک مشکلی ، ماسفت های PNP شدید داغ می کنند !
                      یه تستی باید بکنم ببینم ولتاژ هایی که میفته رو سرش درستند یا نه !
                      سلام بر همه دوستان من این لینک رو دنبال می کردم و لینک بسیار مفیدی هست البته اگر به سر انجام برسد
                      دوست عزیز جناب آقای فرشاد اکرمی ، یک تعداد سوال از نقشه ای که قرار دادید در سایت دارم
                      اول اینکه نقشه ترتانزیستور t2,t4,t6 چیست؟
                      دوم اینکه نقش مقاومت های r37,38,39?
                      سوم نقشه پایه 32و10 میکرو؟
                      البته سوالات دیگری هست که بعدا عرض می نمایم

                      البته یه تجربه کوچک ی که از ماسفت ها دارم که در اختیارتان می گذارم داغ شدن قطعات نیمه هادی زمانی که جریان بالایی از آنها می کشیم امری طبیعی هست مثلا یه ماسفت 20 آمپری اگر حتی یک آمپر جریان بده اگر بدون هیت سینگ بسته بشه بعد از 30 ثانیه دمایی بالاتر 150 درجه هم می رسه


                      نادانترین مردم کسانی هستند که فکر می کنند داناترین آنها هستند.

                      دیدگاه


                        #26
                        پاسخ : راه اندازی موتور براشلس (BLDC)

                        من مدارم رو بدون هیچ چیز اضافه ای بستم ! اون ترانزیستورهایی که میگین ، همگی مدار راه اندازی و درایوهای ماسفت ها هستند !
                        موتور راه افتاد و الان می خوام رو esc اون کار بکنم !
                        اون پایه های میکرو هم ، 32 که برای فرمان دادن به ماسفت هاست و 10 هم مربوط میشه به esc که خودمم تازه وقت کنم امروز می خوام روش کار کنم.
                        متأسفانه رشته من الکترونیک نیست و نمی تونم تحلیل مداری بکنم ، ولی امیدوارم با کمک دوستان بتونیم این موتور رو راه اندازی بکنیم.

                        در مورد داغ کردن ماسفت ها هم پس طبق گفته شما یک امر طبیعی هستش !
                        فایل های پیوست شده

                        دیدگاه


                          #27
                          پاسخ : راه اندازی موتور براشلس (BLDC)

                          نمی دونم چرا راه نمیفته !
                          حتی جهت اطمینان ورداشتم به 2 تا فاز یه موتور dc معمولی وصل کردم ، قشنگ چپگرد راستگرد می کرد و ثابت هم نگهش میداد ! ( هر 3 حالت ) ولی موتور اصلا کار نمی کنه ! یه ذره چپ میره ، یه ذره راست ) کلا نمی دونه چیکار می کنه
                          برنامم رو میزارم ، هر کسی نظری داشت بگه

                          کد PHP:


                          #include <avr/io.h>
                          #include <util/delay.h>
                          #include "avrlibtypes.h"
                          #include "avrlibdefs.h"
                          #include <avr/interrupt.h>



                          #define RAMSTART 0x0060
                          #define RAMSIZE (RAMEND-RAMSTART)

                          #define sleep()

                          ISR(USART_RXC_vect)
                          {

                          }


                          void USART0_Transmit(unsigned char data)
                          {
                              while (!(
                          UCSRA & (1<<UDRE))) sleep();
                              
                          UDR data;
                          }
                          void USART0_TransmitString(char *data)
                          {
                              while (*
                          dataUSART0_Transmit(*data++);
                          }
                          unsigned char USART0_Receive(void)
                          {
                              while (!(
                          UCSRA & (1<<RXC))) sleep();
                              return 
                          UDR;
                          }
                          void USART0_Init(void)
                          {

                              
                          UBRRH 0;
                              
                          UBRRL 71;
                              
                          UCSRB = (1<<RXEN) | (1<<TXEN);
                              
                          UCSRC = (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0);
                          }



                          void ExtIrq_Init(void)
                          {
                          }





                          void BLDC (char a ,char b char c){
                              switch (
                          a)
                              {
                              case &
                          #039;H': //HIGH
                              
                          avr(PORTA).P0=1;
                              
                          avr(PORTA).P1=1;
                                  break;
                                  
                                      case &
                          #039;L': //LOW
                              
                          avr(PORTA).P0=0;
                              
                          avr(PORTA).P1=0;
                                  break;
                                  
                                      case &
                          #039;T': //Three-state
                              
                          avr(PORTA).P0=0;
                              
                          avr(PORTA).P1=1;
                                  break;
                              }    
                              
                                  switch (
                          b)
                              {
                              case &
                          #039;H': //HIGH
                              
                          avr(PORTA).P2=1;
                              
                          avr(PORTA).P3=1;
                                  break;
                                  
                                      case &
                          #039;L': //LOW
                              
                          avr(PORTA).P2=0;
                              
                          avr(PORTA).P3=0;
                                  break;
                                  
                                      case &
                          #039;T': //Three-state
                              
                          avr(PORTA).P2=0;
                              
                          avr(PORTA).P3=1;
                                  break;
                              }
                              
                                  switch (
                          c)
                              {
                              case &
                          #039;H': //HIGH
                              
                          avr(PORTA).P2=1;
                              
                          avr(PORTA).P3=1;
                                  break;
                                  
                                      case &
                          #039;L': //LOW
                              
                          avr(PORTA).P2=0;
                              
                          avr(PORTA).P3=0;
                                  break;
                                  
                                      case &
                          #039;T': //Three-state
                              
                          avr(PORTA).P2=0;
                              
                          avr(PORTA).P3=1;
                                  break;
                              }
                          }



                          int main(void) {
                              
                          ExtIrq_Init();
                              
                          USART0_Init();
                              
                          sei(); // enable interrupts

                          // sample code for USART0
                              
                          DDRA=0b11111111;
                              
                          PORTA=0b00000000;
                              
                          int speed=1000;
                              while(
                          1){

                          BLDC('T','H','L');
                          USART0_TransmitString(">&gtT H L \r\n");
                          _delay_ms(speed);

                          BLDC('L','H','T');
                          USART0_TransmitString(">&gtL H T \r\n");
                          _delay_ms(speed);

                          BLDC('L','T','H');
                          USART0_TransmitString(">&gtL T H \r\n");
                          _delay_ms(speed);

                          BLDC('T','L','H');
                          USART0_TransmitString(">&gtT L H \r\n");
                          _delay_ms(speed);

                          BLDC('H','L','T');
                          USART0_TransmitString(">&gtH L T \r\n");
                          _delay_ms(speed);

                          BLDC('H','T','L');
                          USART0_TransmitString(">&gtH T L \r\n");
                          _delay_ms(speed);

                              }




                          فقط در مورد برنامه بگم که من ارتباط usart هم برقرار کردم تا تو heaper terminall هم ببینم چه خبره
                          در ضمن کسی راه اندازی نکرده ؟

                          دیدگاه


                            #28
                            پاسخ : راه اندازی موتور براشلس (BLDC)

                            من اصلا موتور ندارم که این کار ها رو بکنم
                            یه سوال با این برنامه قبلا جواب گرفتید؟یا نه؟
                            فکر کنم باید یه قسمتی معکوش جریان بدید یعنی قطب های آهنربا عوض بشه که برای این کار نیاز به L298 یا چیزی بهتر از این دارید
                            اصولا یکی نباید کار کنه یکی Sش رو به بیرونه یکی هم Nش اینا وضعیت فاز ها هستند

                            دیدگاه


                              #29
                              پاسخ : راه اندازی موتور براشلس (BLDC)

                              من طبق این فلش راه اندازیش کردم http://users.tinyworld.co.uk/flecc/brushless_motor.html
                              ولی توی این فلش موتور ازنوع ستاره هست ولی مال من مثلث !
                              بدون سنسور حداقل باید یه 50% دورش رو بچرخه ! نمی دونم چرا جواب نمیده !

                              دیدگاه


                                #30
                                پاسخ : راه اندازی موتور براشلس (BLDC)

                                نوشته اصلی توسط فرشاد اکرمی
                                من طبق این فلش راه اندازیش کردم http://users.tinyworld.co.uk/flecc/brushless_motor.html
                                ولی توی این فلش موتور ازنوع ستاره هست ولی مال من مثلث !
                                فرقی نداره یکی از Document های اتمل راجع به این بود که روشی رو که من گفتم استفاده کرده بود
                                منم موتور که چه عرض کنم مال Floppy رو برداشتم به یه ورش جریان میدادم و قطع میکردم همین طوری میشد
                                برای مثلث یکی کار نمیکنه(ازش میشه فید بک گرفت به نظر من)
                                یکی قطب رو به روش رو دفع میکنه
                                اون یکی هم قطب بعدی رو جذب میکنه
                                در کل نیاز به L298 یا بهترش رو داریم

                                دیدگاه

                                لطفا صبر کنید...
                                X