ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 3 از 3
  1. #1
    2012/06/16
    50
    6

    brushless motor with hall sensor

    با سلام
    یه موتور براشلس دارم که یه جور دمنده است میخاستم با ccs براش کد بنویسم هر چی این مطالبه سایتای مختلغ میخونم هیچی سر در نمیارم (از بس خنگم) :cry2: یه مقاله توی سایت میکروچیپ هست به اسم AN857 از روی اون یه سخت افزار بستم ولی هیچ ایده ای توی ذهنم نیست چطوری و از کجا باید کد نویسیشو شروع کنم اگر کسی بتونه یه برنامه مثال برام بذاره و راهنماییم کنه ممنون میشم
    بد جور به کمک احتیاج دارم :angry:

    اضافه شده در تاریخ :
    ای بابا یه جون مرد نیست جواب بده
  2. #2
    2007/08/02
    1,330
    832

    پاسخ : brushless motor with hall sensor

    توی این عکس دقیقا مشخصه که به چه شکل دیتا بدی و از سنسور ها بخونی
    سر راه سنسور های هال آی سی اشمیت تریگر بزار که شکل موج خروجی اونو دقیقا مربعی کنه مثل آی سی 40106


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

    حالا طبق این عکس شما در زمان های 1 بودنش باید pwm بدی


    از توی برنامه که قبلا نوشتم یه مقدار از کد کپی میکنم

    [code=c]
    #define VL_ON PORTB.4=0
    #define VL_OFF PORTB.4=1

    #define UL_ON PORTE.4=0
    #define UL_OFF PORTE.4=1

    #define WL_ON PORTB.6=0
    #define WL_OFF PORTB.6=1

    bit VH=0,UH=0,WH=0;
    unsigned char MOTOR=STOP;

    #define VH_ON VH=1
    #define VH_OFF VH=0,PORTB.7=1

    #define UH_ON UH=1
    #define UH_OFF UH=0,PORTE.3=1

    #define WH_ON WH=1
    #define WH_OFF WH=0,PORTB.5=1

    #define HALLU PIND.0
    #define HALLV PIND.1
    #define HALLW PIND.2



    interrupt [TIM1_OVF] void timer1_ovf_isr(void) // TIMER 1 BARAYE DRIVE MOTOR BLDC VH VA WH
    {
    if(VH==1)OCR1CL=~PWM;
    else OCR1CL=0XFF;
    if(WH==1)OCR1AL=~PWM;
    else OCR1AL=0XFF;
    }
    //-------------------------------------------------------------------------------

    // Timer3 overflow interrupt service routine
    interrupt [TIM3_OVF] void timer3_ovf_isr(void) // TIMER 3 BARAYE DRIVE MOTOR BLDC UH
    {
    if(UH==1)OCR3AL=~PWM;
    else OCR3AL=0XFF;
    }
    //-------------------------------------------------------------------------------

    void BLDC_READ_SENS(){ // KHANDAN SENSOR HAYE MOTOR BLDC
    if(HALLU==0 && HALLV==1 && HALLW==0)I_BLDC=5;
    else if(HALLU==0 && HALLV==1 && HALLW==1)I_BLDC=4;
    else if(HALLU==0 && HALLV==0 && HALLW==1)I_BLDC=3;
    else if(HALLU==1 && HALLV==0 && HALLW==1)I_BLDC=2;
    else if(HALLU==1 && HALLV==0 && HALLW==0)I_BLDC=1;
    else if(HALLU==1 && HALLV==1 && HALLW==0)I_BLDC=0;

    DATA_DISPLAY=I_BLDC;

    }
    //-------------------------------------------------------------------------------



    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    PORTG=0XFF;
    ////////////////////////////////BLDC MOTOR DRIVE////////////////////////////////////
    //VH_OFF , VL_OFF , UH_OFF , UL_OFF , WH_OFF , WL_OFF;
    //delay_us(2);
    if(MOTOR==OPEN){
    if(HALLU==1 && HALLV==0 && HALLW==1 && INCODER>0)INCODER--; //TEST

    if(I_BLDC==0)I_BLDC=1,VL_OFF,UH_OFF,WH_OFF,WL_OFF, delay_us(10),VH_ON,UL_ON; // 1
    else if(I_BLDC==1)I_BLDC=2,VL_OFF,UH_OFF,UL_OFF,WH_OFF, delay_us(10),WL_ON,VH_ON; // 2
    else if(I_BLDC==2)I_BLDC=3,VH_OFF,VL_OFF,UL_OFF,WH_OFF, delay_us(10),UH_ON,WL_ON; // 3
    else if(I_BLDC==3)I_BLDC=4,VH_OFF,UL_OFF,WH_OFF,WL_OFF, delay_us(10),VL_ON,UH_ON; // 4
    else if(I_BLDC==4)I_BLDC=5,VH_OFF,UH_OFF,UL_OFF,WL_OFF, delay_us(10),WH_ON,VL_ON; // 5
    else if(I_BLDC==5)I_BLDC=0,VH_OFF,VL_OFF,UH_OFF,WL_OFF, delay_us(10),UL_ON,WH_ON; // 6

    }
    else if(MOTOR==CLOSE){
    if(HALLU==1 && HALLV==0 && HALLW==1)INCODER++; // TEST

    if(I_BLDC==0)I_BLDC=1,VH_OFF , VL_OFF , UH_OFF, UL_ON , WH_ON , WL_OFF; // 6
    else if(I_BLDC==1)I_BLDC=2,VH_OFF , VL_ON , UH_OFF, UL_OFF , WH_ON , WL_OFF; // 5
    else if(I_BLDC==2)I_BLDC=3,VH_OFF , VL_ON , UH_ON, UL_OFF , WH_OFF , WL_OFF; // 4
    else if(I_BLDC==3)I_BLDC=4,VH_OFF , VL_OFF , UH_ON, UL_OFF , WH_OFF , WL_ON ; // 3
    else if(I_BLDC==4)I_BLDC=5,VH_ON , VL_OFF , UH_OFF, UL_OFF , WH_OFF , WL_ON ; // 2
    else if(I_BLDC==5)I_BLDC=0,VH_ON , VL_OFF , UH_OFF, UL_ON , WH_OFF , WL_OFF; // 1
    }
    }

    [/code]

    با تغییر متغیر pwm قدرت BLDC کم یا زیاد میشه و با کم و زیاد کردن سرعت تایمر سرعت موتور تغییر میکنه
    بر دوستان رفته چه افسوس میخوری
    ما هم مگر جواز اقامت گرفته ایم
  3. #3
    2007/08/02
    1,330
    832

    پاسخ : brushless motor with hall sensor

    نقل قول نوشته اصلی توسط ali fard
    واقعا ممنون خیلی از کمکت ممنونم
    خواهش میکنم فقط دقت کن به گیت درایور هات
    not هستند به خاطر همینه که من برای خاموش کردن گیت از 1 استفاده کردم و برای روشن کردن از 0
    وقتی 1 میدی گیت درایور not میکنه اونور میشه 0 :mrgreen:
    بر دوستان رفته چه افسوس میخوری
    ما هم مگر جواز اقامت گرفته ایم
نمایش نتایج: از 1 به 3 از 3

موضوعات مشابه

  1. سنسور مغناطيس (Hall Effect Sensor)
    توسط shahriar در انجمن سنسورها
    پاسخ: 6
    آخرين نوشته: 2019/07/11, 10:34
  2. سنسور اثر هال درون موتورهای BrushLess
    توسط Hamid_Rostami در انجمن مباحث علمی عمومی
    پاسخ: 1
    آخرين نوشته: 2011/04/22, 19:27
  3. شبیه سازی servo motor یا steper motor با متلب
    توسط chamran.kh68 در انجمن سیستم های کنترلی
    پاسخ: 0
    آخرين نوشته: 2010/11/26, 16:54
  4. نیاز به کمک در زمینه ی شبیه سازی servo motor یا steper motor با متلب
    توسط chamran.kh68 در انجمن آموزش نرم افزارهاي آناليز و شبيه ساز
    پاسخ: 0
    آخرين نوشته: 2010/11/23, 16:12
  5. Hall Sensor
    توسط lida در انجمن سیستم های کنترلی
    پاسخ: 5
    آخرين نوشته: 2007/08/26, 19:41

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •