8 Ağustos 2011 Pazartesi

Brushless Motor Controlling with Arduino and JAVA - Java ve Arduino yardımı ile fırçasız motor kontrolü

Arduino ile bir çok uygulamanın kolayca yapılabildiğini bu konu üzerinde çalışanlar iyi bilirler. Hem donanım hem de yazılım tarafının kolay anlaşılabilir olması arduino platformunu çok güçlü kılar. Böylece gereksiz zaman kayıpları önlenir ve maliyetler de düşer. Yalnız bu çalışmamızda arduinonun temel işlevlerinin bir adım önüne geçerek orta seviye bir proje ile uğraşacağız. Bu yüzden kendini arduinonun temelini öğrenmiş olarak hissetmeyenler için bu çalışma ağır gelebilir. Bu yüzden bilginize güvenmiyorsanız ilk önce lütfen kendinizi geliştirin ve daha sonra bu makaleye geri dönün.

Bu çalışmamızda bilgisayar üzerindeki USB arayüzünü kullanarak bir fırçasız motoru kontrol edeceğiz. Bunun için ihtiyacımız olan donanım aşağıda listelenmiştir.

  • Arduino

  • Fırçasız motor

  • ESC (Elektronik hız kontrolcü)

  • Bir bilgisayarın güç kaynağı

İhtiyacımız olan yazılımlar ise



Arduino IDE programını yükleyip USB sürücüsünü yükledikten sonra aşağıdaki kodu arduinoya yükleyerek işlemebaşlayın.

/*Brushless Controller V 1.0 By Alper Kahriman*/
#define BASLA 1
#define DUR 2
#define HIZLAN 3
#define YAVASLA 4
#define ENYUKSEK 5
#define ENDUSUK 6

int hiz = 0; 
int kademe = 1;
int gecikme = 0 ;

const int cikisPin=9;//esc için pwm sinyalinin bağlanacağı pin

void setup()
{
  Serial.begin(9600);//Seri haberleşmanin başlaması için komut
  pinMode(cikisPin,OUTPUT);
  Serial.println("Tamam");
}

void loop()
{
  int gelenByte=0;
  
  if (Serial.available() > 0) {
    gelenByte = Serial.read();
    
    if(gelenByte==BASLA){
      for(hiz=90.0;hiz<=105;hiz+=1){
        analogWrite(cikisPin, hiz);
        delay(100); 
       }
       hiz=105;
    }
    
    else if(gelenByte==DUR){
      hiz=0;
      analogWrite(cikisPin, hiz);
      delay(gecikme); 
     }
    else if (gelenByte==HIZLAN&&hiz<=125){
      hiz+=kademe;
      analogWrite(cikisPin, hiz);
      delay(gecikme); 
    }
    
    else if (gelenByte==YAVASLA&&hiz>=100){
      hiz-=kademe;
      analogWrite(cikisPin, hiz);
      delay(gecikme); 
    }
    
    else if (gelenByte==ENYUKSEK){
      hiz=125;
      analogWrite(cikisPin, hiz);
      delay(gecikme); 
    }
    else if (gelenByte==ENDUSUK){
      hiz=100;
      analogWrite(cikisPin, hiz);
      delay(gecikme); 
    }
    else if (gelenByte>=100 && gelenByte<=125 ){
      hiz=gelenByte;
      analogWrite(cikisPin, hiz);
      delay(gecikme); 
    }
    else{
      
    }
    Serial.println(hiz);
  }

  
  
}

Bu program arduinonun kontrol sinyallerini göndermesi ve bilgisayarla seri haberleşmesi için kullanılacak. Burada ESC yi kontrol eden pinin PWM sinyalini üreten 9. pin olduğuna dikkat edilmeli.

Donanım aşağıdaki şekilde görüldüğü gibi bağlanır.

ESC yi güç kaynağının 12V çıkışına bağlayın.

Artık USB üzerinden fırçasız motorunuzu rahatlıkla kullanabilirsiniz.Brushless Controller programından Com Port ayarı yapmayı unutmayın.

Brushless Controller programının kaynak kodlarını isteyenler benimle irtibata geçerek alabilirler.
Ayrıntılı bilgi için eposta adresim: alperkah@hotmail.com

Hiç yorum yok:

Yorum Gönder