Merhaba arkadaşlar,

Bu projemizde Android akıllı telefonumuzun Bluetooth özelliği ile kontrol edebildiğimiz bir araba yapacağız.

Gerekli malzemeler:

L298N Voltaj Regulatörlü Çift Motor Sürücü Kartı

24V a kadar olan motorları sürmek için üretilen bu kart, iki kanallı olup kanal başına 2A akım verebilir. Bu kart iki kanallı olduğu için arabanın sağ tarafındaki 2 motoru bir kanala; sol tarafındaki motorları da diğer kanala bağlayacağız. İşimizi fazlasıyla görecektir.

Çok Amaçlı Robot Platformun Montajı

Demonte şekilde gelen kitin montajını yapalım. Ancak ilk olarak motorların kablolarını lehimlememiz gerekiyor. Daha önce lehim yapmadıysanız Lehim Nasıl Yapılır? videomuzu izleyebilirsiniz.

Lehim yaparken her motorun sağ ayağına kırmızı kablo, sol ayağına da siyah kablo lehimlemek olası karışıklıkları önleyecektir.

Daha sonra fotoğrafta gösterildiği gibi motorları montajlıyoruz.

Motorların kablolarını uygun deliklerden yukarı doğru yönlendirmeyi yapıyoruz.

Elektronik Bağlantılar:

Bağlantıları karışıklık olmaması adına farklı kısımlarda gösterdim. İlk olarak Arduino ile HC-06 Bluetooth modülü arasındaki bağlantıları bu şekilde yapıyoruz:

Arduino ile L298N Motor Sürücü kartı arasındaki bağlantıları bu şekilde yapıyoruz:

 

L298N Motor Sürücü Kartı ile DC motorların bağlantısını bu şekilde yapıyoruz:

Bütün bağlantılarımızı yaptıktan sonra projemiz çalışmaya hazır bi halde olacak. Son görüntümüz de aşağıdaki görseldeki gibi olmalı.

NOT: Görsellerde iki tane pil yuvası olması kafa karıştırmasın. Pil yuvasından çıkan kabloya iki ek yaparak birini motor sürücüsüne diğerini Arduinoya bağladık.

Aracımız hazır. Şimdi de yazılım kısmına odaklanalım. Bu kısma geçmeden aracın güç bağlantılarını kesmeliyiz. Pillerden birini çıkartarak bunu yapabiliriz.

Not: Kodu Arduinoya yüklerken HC-06 Bluetooth modülünün bağlantılarını sökmemiz gerekiyor aksi takdirde hata mesajları ile karşılaşacağız.

Kod:

/*
`://////////////////////////////-`
-/////////::////////////:://///////-
://///-`     `://////:`     `-/////:
:////..:///:.  `////`.:///:.  .////:
:////:///////-  ////////////-  ////:
:///++///////: `////////////- `////:
://///-.////-`.//////.-////-`-/////:
:////////::-:///////////::-:///////:
-//////////////////////////////////-
-////////////////////////////////-
`------::////////////////////////////::------`
:/--////////////////////////////////////////--/-
`:/:://::::::://////////////////////::::::://::/:`
./////-     `////////////////////////`     -/////.
./////-    `//////////////////////////`    -/////.
./////-   `////////////////////////////`   -/////.
///////: `//////////////////////////////` :///////
////////`////////////////////////////////`////////
//////////////////////////////////////////////////
---.---.//////////////////////////////////.---.---
.://////////////////////////////:.
`-:///////:::::::::::::..:::::::::::::///////:-`
://////////////////////////////////////////////:
://////////////////////////////////////////////:
://////////////////////////////////////////////:
.//////////////////////:://///////////////////*/ 

//L298N Bağlantısı   
  const int motorA1  = 5;  // L298N'in IN3 Girişi
  const int motorA2  = 6;  // L298N'in IN1 Girişi
  const int motorB1  = 10; // L298N'in IN2 Girişi
  const int motorB2  = 9;  // L298N'in IN4 Girişi


  int i=0; //Döngüler için atanan rastgele bir değişken
  int j=0; //Döngüler için atanan rastgele bir değişken
  int state; //Bluetooth cihazından gelecek sinyalin değişkeni
  int vSpeed=255;     // Standart Hız, 0-255 arası bir değer alabilir

void setup() {
    // Pinlerimizi belirleyelim
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT);    
    // 9600 baud hızında bir seri port açalım
    Serial.begin(9600);
}
 
void loop() {
  /*Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur.
 (Aktif etmek için alt satırın "//" larını kaldırın.)*/
//     if(digitalRead(BTState)==LOW) { state='S'; }

  //Gelen veriyi 'state' değişkenine kaydet
    if(Serial.available() > 0){     
      state = Serial.read();   
    }
  
  /* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/
    if (state == '0'){
      vSpeed=0;}
    else if (state == '1'){
      vSpeed=100;}
    else if (state == '2'){
      vSpeed=180;}
    else if (state == '3'){
      vSpeed=200;}
    else if (state == '4'){
      vSpeed=255;}
     
  /***********************İleri****************************/
  //Gelen veri 'F' ise araba ileri gider.
    if (state == 'F') {
      analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);      analogWrite(motorB2, 0); 
    }
  /**********************İleri Sol************************/
  //Gelen veri 'G' ise araba ileri sol(çapraz) gider.
    else if (state == 'G') {
      analogWrite(motorA1,vSpeed ); analogWrite(motorA2, 0);  
        analogWrite(motorB1, 100);    analogWrite(motorB2, 0); 
    }
  /**********************İleri Sağ************************/
  //Gelen veri 'I' ise araba ileri sağ(çapraz) gider.
    else if (state == 'I') {
        analogWrite(motorA1, 100); analogWrite(motorA2, 0); 
        analogWrite(motorB1, vSpeed);      analogWrite(motorB2, 0); 
    }
  /***********************Geri****************************/
  //Gelen veri 'B' ise araba geri gider.
    else if (state == 'B') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, vSpeed); 
        analogWrite(motorB1, 0);   analogWrite(motorB2, vSpeed); 
    }
  /**********************Geri Sol************************/
  //Gelen veri 'H' ise araba geri sol(çapraz) gider
    else if (state == 'H') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 100); 
        analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed); 
    }
  /**********************Geri Sağ************************/
  //Gelen veri 'J' ise araba geri sağ(çapraz) gider
    else if (state == 'J') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, vSpeed); 
        analogWrite(motorB1, 0);   analogWrite(motorB2, 100); 
    }
  /***************************Sol*****************************/
  //Gelen veri 'L' ise araba sola gider.
    else if (state == 'L') {
      analogWrite(motorA1, vSpeed);   analogWrite(motorA2, 150); 
        analogWrite(motorB1, 0); analogWrite(motorB2, 0); 
    }
  /***************************Sağ*****************************/
  //Gelen veri 'R' ise araba sağa gider
    else if (state == 'R') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 0); 
        analogWrite(motorB1, vSpeed);   analogWrite(motorB2, 150);     
    }
  
  /************************Stop*****************************/
  //Gelen veri 'S' ise arabayı durdur.
    else if (state == 'S'){
        analogWrite(motorA1, 0);  analogWrite(motorA2, 0); 
        analogWrite(motorB1, 0);  analogWrite(motorB2, 0);
    }  
}

Kodumuz Arduino yüklendiyse bilgisayarımıza bağlı USB kabloyu söküp Arduinoyu pillerden besledikten sonra HC-06 Bluetooth Modülünü tekrar bağlayabiliriz.

HC-06 Bluetooth modülünun ışıkları yanıp sönmeye başladıysa bu kısım da sorunsuz şekilde gerçekleşmiş demektir.

Şimdi sıra akıllı telefonumuzu aracımız için ayarlamaya.

Google Play Store’dan Arduino Bluetooth RC Car uygulamasını indirelim. Buradan sonraki adımları isterseniz videodan takip edebilirsiniz.

Uygulamanın inmesi devam ederken biz de telefon ayarlarından Bluetooth paneline girip telefonumuzu HC-06 ile eşliyoruz. Standart eşleme şifresi “1234” veya “0000” tür. Eşleme işlemi bittiyse indirdiğimiz uygulamayı açabiliriz. Uygulama açıldıktan sonra ekranın üst tarafındaki ayarlar sekmesine girip “Connect to car” seçeneğini işaretliyoruz. Daha sonra bizden bir cihaz seçmemizi isteyecek. Önceden eşleştirdiğimiz HC-06 modülünü seçiyoruz.

Bağlantımız gerçekleştiğinde HC-06 Bluetooth Modülü üzerindeki yanıp sönen ışık sürekli yanar pozisyona geçecektir.

Her şey tamamsa iyi eğlenceler 🙂

Başka bir projede görüşmek üzere..

22 Yorumlar

  1. acil cevap verebilirmisiniz hcr06 malzemeler bölümünde yazmıyor çok amaçlı robot platformunun içinden mi çıkıyor yoksa siz yazmayı mı unuttunuz

  2. merhaba.
    6 tane AA pil yerine 8tane kullansak daha hızlı bir şekilde kullanmak mümkün mü ya da 4 tane kullansak daha mı yavaş olur.kombinasyonları hakkında ve 4 motor için max. pil sayısı hakkında bilgi verebilir misiniz?

  3. Merhaba arduinoya kodu yükleyince şu hatayı alıyorum
    exit status 1
    expected unqualified-id before ‘if’
    sorun nedir?

  4. Yap dediniz her şeyi yaptım bütün parçaları topladım ama olmadı.kodu yaptım ama olmadı.uygu
    lamayı bile indirdim ama olmadı ama bağlandı…
    LÜTFEN EN YAKIN ZAMANDA BİR VİDYO ÇEKİN!!!!!!!!!!!!!!!!!!!!!!!!!!!!…

    • Herhangi bir farkı olmayacaktır. Sistemin daha verimli olmasını isterseniz sürücü üzerindeki 5V bağlantısından Arduino’nun 5V hattını besleyebilirsiniz. Bu sayede pillerin gerilimi iki ayrı regülatöre gitmeyecek, dolayısıyla ısı sonucu verim kaybı daha az olacaktır.

  5. Kerem bey dediklerinizin hepsini yaptım ama olmuyo bluetooth u bağlıyorum 5 sn sonra bağlantı kopuyor nedeni nedir sizce Bluetooth Modül : HC-05

  6. Bağlantıların nasıl yapıldığının sırayla fotolarını koyarsınız bu makale daha yararlı olacaktır.

  7. Anlatılan her şeyi harfiyen yaptım bluetooth dan hc-06 ya bağlanıyorum uygulamanın içinden orada da sıkıntı yok ama tuşlara basmama rağmen gitmiyor sorun ne acaba ÖDEVİN YETİŞMESİ LAZIM LÜTFEN YARDIM EDİN:

CEVAP VER