BLDC sürücü sonunda bitti !

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

salim ALTIN

Merhaba

Alıntı Yap
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

Tork; hesaplanıp imal edildiği kutup sayısına göre ön görülen maksimum çalışma hızına kadar düşmez (belki %10 değişim) sabit kalır.(Ön görülen voltaj ve akım değerleri çerçevesinde)  Bu hızın üzerindede çalışılabilir işte o zaman tork düşmeye başlar.
İnsanlar 3 guruba ayrılırlar. 1- Birşeyler yapıp üretmeye çalışan küçük bir gurup. 2- Birşeyler yapanları hayranlıkla ve takdirle izleyen büyük bir gurup. 3- Hiç birşeyden haberi olmadan yaşayan devasa yığınlar....

bulut_01

tor
Alıntı yapılan: salim ALTIN - 30 Eylül 2012, 09:33:45
Merhaba

Tork; hesaplanıp imal edildiği kutup sayısına göre ön görülen maksimum çalışma hızına kadar düşmez (belki %10 değişim) sabit kalır.(Ön görülen voltaj ve akım değerleri çerçevesinde)  Bu hızın üzerindede çalışılabilir işte o zaman tork düşmeye başlar.

ben tork hız ıle duser yada artar demedım. ben torku yazılım ıle ayarlanıyor ve frekans artıkca tork dusuyor dedım.
YENİLMEZ..

gambit1244

yorumları takip ediyorum arkadaşlar esc çalışmaları nasıl gidiyor?? pcb çıkınca basalım testlerini yapayım benim motorlarla :))

tabi malzemeleri bulursak :P
[email]tufan_ozbek@hotmail.com[/email] Yesterday is history. Tomorrow is a mystery. Today is a gift aslında bütün mesele bu.

bulut_01

İYİ geceler arkadaslar pcb + yazılım bitti projeye burda full olarak yayınlıyorum. pcb ilgili küçük bir kac not yazayım sürücü transıstorlerın oldugu beyaz yuvarlak uzerıne dırek fan monte edilebilir ve sogutucuya gerek yok devre 2 bagımsız besleme ıle calısmaktadır motor beslemesı 24 AC YADA DC ıle calışır. devrenın kontrol kısmınıda cep telefon sarj devresını kullanarak beslenmekdedır smps olarakda pcb uzerınde belirtmıs olup devre yazılım ve pcb ıle fulldur. pcb eksık yada hatalarım var ise yardımlarınızla duzeltırım devre 1 saatte çizdiğim için gözden kaçmıs yerler olabilir fark ettıysenınız uyarınız.devre küçük boyutta oldugu ıcın bıraz jumper bol bulunmaktadır.  ;D





#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=40 ;  // duty oranı (1-255)
   
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);
 }
  }
   }
   


mesaj birleştirme:: 02 Ekim 2012, 10:38:26

bir küçük not daha sarj agletı smps kucuk bir operasyonla 18 vdc cevrilip sisteme veriliyor.
YENİLMEZ..

pisayisi

Şemada sıkıntı yok pcb de otomatik modda çizildi sanırım, devre tıkır tıkır çalışır ;D :Jumper evet fazla olmuş bu ancak lehimleme sırasında offf dedirtir insana... Bu arada motor hall sensor mu kullanıyor geribesleme bilgisi olarak?
Murat

bulut_01

aynen hall sensor var pisayısı bende bıtane 200 watt cıvarında hayvan var onu bu sürücüyle koşturacam bakalım kaç nala koşacak  ;D
YENİLMEZ..

pisayisi

18f1330 pwm çıkışlarına deadtime ölü zaman eklemesi yapıyor mu yoksa hall bilgisine göre çıkışlar anlık mı değişiyor, seçilen pwm frekansı nedir?  bunların hepsi performansı belirleyecek etkenler tabii...
Murat

bulut_01

hall gelen bilgiye göre anlık pwm degişiyor frekans sabit artırdıgımız zaman tork düşüyor ters orantılı frekans ıle tork yazılımda hız ve tork bılgılerı kodda gömülü hız ve tork bilgileri pic yeniden deger atanarak yapılıyor ben demo seklinde yazdım kodu bir buton ıle yada pot ıle hız ve tork ayarlamak ıcın ufak kod parcası eklemem lazım benım amacım bendekı motor max kac rpm yapar görmek bide dead time sabit %0 dır.
YENİLMEZ..

Kazım


bulut_01

Alıntı yapılan: graski - 02 Ekim 2012, 17:08:16
Tebrik ederim ...
eyw arkadasım bu uygulamayı zaman buldukca geliştireceğim.
YENİLMEZ..

gambit1244

#25
Alıntı yapılan: bulut_01 - 02 Ekim 2012, 18:36:15
eyw arkadasım bu uygulamayı zaman buldukca geliştireceğim.

çok başarılı ilk fırsatta karttan basıp deneyeceğim

hocam bunun malzeme ücreti nedir acaba hiç hesapladınızmı
elinize emeğinize sağlık
[email]tufan_ozbek@hotmail.com[/email] Yesterday is history. Tomorrow is a mystery. Today is a gift aslında bütün mesele bu.

bulut_01

60 ile 70 TL civarı tutar sanırım.
YENİLMEZ..

Veli B.

Naçizane bir öneri;
f;l;e için ayrı ayrı değişkenler tanımlamak yerine, 1 değişken tanımlayıp
0. bit f,
1. bit l,
2. bit e,
şeklinde atayabilirsiniz ve daha sonra direkt bu değişken üzerinden select case yapabilirsiniz, bu sayede her if+else if ile 6 karşılaştırma yapmaktan kurtulursunuz ve size ciddi hız sağlar.

set_power_pwm2_duty(duty2*0); burada 0 ile çarpma işleminin özel bir sebebi var mı, direkt sıfır yazmak ile aynı sonuca çıkacak ve gereksiz bir işlem ortadan kalkacak...

bulut_01

önerin dikkate alacagım case komutu kullanacakdım ama neden vaz gecdım bılmıyorum 0 carpamk okanalı sıfırlamak carpmak mcu yorarsa da dırek sıfrlarım
YENİLMEZ..

SERRO EFE

Bi öneride benden gelsin A0-B2-B3 pinleri interrupt olarak ayarlanabiliyor. Hall efectleri bu pinlere bağlayıp kesmeleri aktif edersen ve 3 pini okuyup 1 değişkene kaydedip bu kaydettiğin değerle bir tablo üzerinden pwm pozisyonlarını vermen daha güzel olur. Bu sayede main içersinde başka işler yaptırabilirsin.