BLDC sürücü sonunda bitti !

Başlatan bulut_01, 24 Eylül 2012, 01:42:47

bulut_01

iyi geceler arkadaslar bitirdiğim bldc brushless sürücü devresi bitti proteus similasyon basarılı.motor hızını
1-255 ile duty ayarlanıyor devre protatip olup gelıstırılebılır ıstege baglı motora göre frekans ayarlayabılırsınız kodu ve sema asagıdadır. tek sorum bu motor normali kac herz frekansda calısır ? örnek harddisk motoru.



#include <18f1330.h> 
#fuses INTRC_IO,NOWDT,NOMCLR
#use delay(clock=40M,oscillator=10M)
#use fast_io(a)
#use fast_io(b) 

 int16 duty1=0;
 int16 duty2=0;
 int16 duty3=0;

int16 p=200;  // duty oranı (1-255) hız ayar.
   
int1 f=0;
int1 l=0;
int1 e=0;

      void main()
{
   setup_power_pwm_pins(PWM_ODD_ON,PWM_odd_on,PWM_odd_on,PWM_odd_on);
   setup_power_pwm(PWM_CLOCK_DIV_64|PWM_FREE_RUN,1,0,4095,0,1,0); 
   setup_adc_ports(NO_ANALOGS); 
   setup_adc( ADC_OFF );

   set_tris_a(0b000000111);
   set_tris_b(0x00);
  

 while(1)
  {
 f=input(pin_a0);
 l=input(pin_a1);
 e=input(pin_a2);  
  
  if ((f==1)&&(l==0)&&(e==1))      //101
   {
        duty3=p*64;
      set_power_pwm4_duty(duty3);
     output_high(pin_b4);
    }
  else if ((f==1)&&(l==0)&&(e==0))
  {
  set_power_pwm4_duty(duty3*0);
  output_low(pin_b4);
  } 

   if ((f==1)&&(l==0)&&(e==0))    // 100
  {
     duty3=p*64;
      set_power_pwm4_duty(duty3);
      output_high(pin_b0);
  }
   else if ((f==1)&&(l==1)&&(e==0))
  {
  set_power_pwm4_duty(duty3*0);
  }
delay_ms(1);
 
 if ((f==1)&&(l==1)&&(e==0))       //110
    {
     duty2=p*64;
      set_power_pwm2_duty(duty2);
     }  
  else if ((f==0)&&(l==1)&&(e==0))   
    {
    set_power_pwm2_duty(duty2*0);
    output_low(pin_b0);
 }

if ((f==0)&&(l==1)&&(e==0))       //010
   {
    duty2=p*64;
    set_power_pwm2_duty(duty2);
    output_high(pin_b6);
    }  
   else  if ((f==0)&&(l==1)&&(e==1))
    {
    set_power_pwm2_duty(duty2*0);
   } 
 
 if ((f==0)&&(l==1)&&(e==1))     //011
    
    {
         duty1=p*64;
      set_power_pwm0_duty(duty1);
     }
    else  if ((f==0)&&(l==0)&&(e==1))
     {
     set_power_pwm0_duty(duty1*0);
     output_low(pin_b6);
     }
     
 if ((f==0)&&(l==0)&&(e==1))     //001
   {
     duty1=p*64;
      set_power_pwm0_duty(duty1);
       output_high(pin_b4);
  }
 else  if ((f==1)&&(l==0)&&(e==1))
  {
  set_power_pwm0_duty(duty1=0x00);
 }
  }
   }
   
YENİLMEZ..

z

Güç katında mosların sürümü yanlış olmuş dolayısı ile bu devre şemasını gerçekte çalıştıramazsın. (Protesusda herşey toz pembe)
Bu tip motorlar 0 ile max devir arasında herhangi bir devirde çalıştırılabilir. Dolayısı ile çalışma frekansı oldukça geniştir.
Ancak geniş devir aralığında kullanacaksan motor akımından da geribesleme gerekir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

marecrisium

Alıntı yapılan: z - 24 Eylül 2012, 01:51:50
Güç katında mosların sürümü yanlış olmuş dolayısı ile bu devre şemasını gerçekte çalıştıramazsın. (Protesusda herşey toz pembe)
Bu tip motorlar 0 ile max devir arasında herhangi bir devirde çalıştırılabilir. Dolayısı ile çalışma frekansı oldukça geniştir.
Ancak geniş devir aralığında kullanacaksan motor akımından da geribesleme gerekir.

Mosfetleri sürmedeki yanlışlık sürücü bir entegre veya transistör devresi kullanılmaması mı hocam?

z

Emetor yada source izleyici devrelerde çıkış voltajı giriş voltajından düşüktür. Şeması verilen devrede üst moslar bu yapıdadır. Bu durumda 5v dan mosların eşik voltajını çıkartırsak motor sargıları için geriye çok düşük voltaj kalır. Üstelik üst anahtarlar lineer bölgede kalırlar.  Bu nedenlerle gerçek uygulamada çalışmaz.

Mosların önüne sürücü konmalı ya da eğer motor 5v ile beslenecekse hiç olmazsa üst moslar P tipine çevrilmeli.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

bulut_01

sayın arkadaslar yukardakı sema temsilidir gercekde mos sürücüsü ve feedback devreye eklenecek vs vs ayrıntılar.
YENİLMEZ..

pisayisi

Kodlardan sonra asıl sürücüü devre için de epeyce kafa yormak gerekecek gibi duruyor...
Murat

teknikelektronikci

Alıntı yapılan: pisayisi - 24 Eylül 2012, 10:39:36
Kodlardan sonra asıl sürücüü devre için de epeyce kafa yormak gerekecek gibi duruyor...

Amerikayi tekrar kesfetmeye gerek yok arkadaslar cikis kati 6 IGBT veya Moslu 3 faz cikis kati bunun icin nette bolca sema olmakla birlikte cesitli üreticilerin cok güzel programlari var kafa yormaniz gereken kisim bence yazilim arkadasimizda isin mantigini gösteren fikir vermesi acisindan bir program yazmis paylasmis Tesekürler
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

bulut_01

donanım olarak sahsen benı kasmaz full bıtırp uygulamaya gecdıgım gun vıdeo sunu yayınlarım asıl burda önemli nokta hızlı bır yazılım ve mcu gerisi tefferuattır.
YENİLMEZ..

rree

---PWM ile hızı nasıl değiştiriyorsun onun ile ilgisi nedir?. Ben daha önce  asenkron motor için bir program yazmıştım. Pwm ile motor akımını ayarlıyordum. Timer 1 ile hızı. Pwm ile hız değitirme mantığınız nedir öğrenebilirmiyim.

halilgalic

hocam ccsc de yeniyim "set_pwm1_duty(duty)" ile "set_power_pwm4_duty(duty3)" arasındaki fark ne anlayamadım teşekkürler

"

skara1214

Alıntı yapılan: halilgalic - 24 Eylül 2012, 13:33:17
hocam ccsc de yeniyim "set_pwm1_duty(duty)" ile "set_power_pwm4_duty(duty3)" arasındaki fark ne anlayamadım teşekkürler

"
ilki  her mikroişlemcide olan ccp modulundeki pwm nin duty_cycle nin ayarlama ikincisi ise bazı pic modellerinde bulunan 6 adet olan power pwm modülünün duty sini ayarlama
Herkes ölür ama herkes gerçekten yaşamaz

teknikelektronikci

Alıntı yapılan: bulut_01 - 24 Eylül 2012, 12:50:23
donanım olarak sahsen benı kasmaz full bıtırp uygulamaya gecdıgım gun vıdeo sunu yayınlarım asıl burda önemli nokta hızlı bır yazılım ve mcu gerisi tefferuattır.

ufak BLDC Motorlar ve ufak gerilim ve akimlarla  calisacaksaniz  dediginizde haklisiniz
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

SERRO EFE

Elimde atıl bulunan mitsubishi power modül ile 2kw bi brushess motor için sürücü yaptım. Güç katı tasarımını çok rahatlatıyor. Sadece yazılım düşünüyorsunuz. Tavsiyem temin edebilirseniz hazır modül kullanmanız.

bulut_01

Alıntı yapılan: teknikelektronikci - 25 Eylül 2012, 09:58:37
ufak BLDC Motorlar ve ufak gerilim ve akimlarla  calisacaksaniz  dediginizde haklisiniz
hocam güç fark etmez ister 10 wattlık olsun ıster 10kw olsun yaparız evelallah para tek mesele ne kadar köfte o kadar ekmek elımde var bıtane 200 watt cıvarında blcd brus. motor bu hastanelerın gırıs camlı fotosellı kapısının motoru bu hayvan max kac rpm yapar sunu bılmiyorum bu motorların özellıgı surucu frekansınız artıgında onla beraber ters orantı olarak tork dusuyor ne kadar frekans o kadar dusen tork kucuk frekanslarda max tork alınıyor ornek 50 ıle 200 hz arası bıtırebılırsım zaman bulup burda yayınlarım pcb tasarımı ıle
YENİLMEZ..

teknikelektronikci

Alıntı yapılan: bulut_01 - 25 Eylül 2012, 22:52:02
hocam güç fark etmez ister 10 wattlık olsun ıster 10kw olsun yaparız evelallah para tek mesele ne kadar köfte o kadar ekmek elımde var bıtane 200 watt cıvarında blcd brus. motor bu hastanelerın gırıs camlı fotosellı kapısının motoru bu hayvan max kac rpm yapar sunu bılmiyorum bu motorların özellıgı surucu frekansınız artıgında onla beraber ters orantı olarak tork dusuyor ne kadar frekans o kadar dusen tork kucuk frekanslarda max tork alınıyor ornek 50 ıle 200 hz arası bıtırebılırsım zaman bulup burda yayınlarım pcb tasarımı ıle

o zaman size bol sans ve basari ;)

yukaridaki yaziyi yazmamin sebebi kendim bire bir program ve pcb si ile ugrasmis olmasamda tecrübe ile sabitdir
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!