Please assign a menu to the primary menu location under MENU

17 Ekim 2019 Perşembe
Arduino Projeleri

Arduino İle Bluetooth Kontrollü Uzaktan Kumandalı Araba

20.1Kviews

Aracın Çalışması

›Telefona yüklediğimiz programla bluetooth üzerinden devredeki bluetooh modülüne komut gönderiyoruz. Arduino komutu değerlendiriyor ve motor sürücü modülü yardımı ile motoru çalıştırıyor. Öne gitmek için motorlar saatin tersi , arkaya gitmek için motorlar saat yönü, sağa veya sola dönmek için ise hangi yönse o yöndeki motorlar saat tersi yönünde döndürülüyor.

 

 

Malzemeler

›1 x Arduino

›4 x Tekerlek

›1 x Robot şasesi

›4 x DC motor (Şasenizin ağırlığına göre seçin 6v,9v vs)

›1 x DC motor sürücüsü(L298N)

›1 x HC-05 veya HC-06 Bluetooth modülü

Arduino Unoarduino_uno_1b

›Arduino Uno ‘nun 14 tane dijital giriş / çıkış pini vardır. Bunlardan 6 tanesi PWM çıkışı olarak kullanılabilir. Ayrıca 6 adet analog girişi, bir adet 16 MHz kristal osilatörü, USB bağlantısı, power jakı (2.1mm), ICSP başlığı ve reset butonu bulunmaktadır. Arduino Uno bir mikrodenetleyiciyi desteklemek için gerekli bileşenlerin hepsini içerir. Arduino Uno ‘yu bir bilgisayara bağlayarak, bir adaptör ile ya da pil ile çalıştırabilirsiniz.

 

DC motor sürücüsü(L298N)l298n-voltaj-regulatorlu-cift-motor-surucu-karti-10150-62-O

Özellikleri :

  1. ›Birbirinden bağımsız olarak iki ayrı motoru kontrol edebilir.
  2. ›Kanal başına 2A akım verebilmektedir.
  3. ›Üzerinde dahili regülatörü vardır.
  4. ›Yüksek sıcaklık ve kısa devre koruması vardır.
  5. ›Motor dönüş yönüne göre yanan ledler vardır.
  6. ›Kart üzerinde dahili soğutucu vardır.
  7. ›Akım okuma (current sense) pinleri dışa verilmiş haldedir.

 

HC-06 Bluetooth modülükablolu-hc06-bluetooth-serial-modul-karti-hc06-bluetooth-to-serial-port-m-12526-82-B

Özellikleri:

  1. ›Bluetooth Protokolü: Bluetooth 2.0+EDR(Gelişmiş Veri Hızı)
  2. ›2.4GHz haberleşme frekansı
  3. ›Hassasiyet: ≤-80 dBm
  4. ›Çıkış Gücü: ≤+4 dBm
  5. ›Asenkron Hız: 2.1 MBps/160 KBps
  6. ›Senkron Hız: 1 MBps/1 MBps
  7. ›Güvenlik: Kimlik Doğrulama ve Şifreleme
  8. ›Çalışma Gerilimi: 1.8-3.6V(Önerilen 3.3V)
  9. ›Akım: 50 mA
  10. ›Boyutları: 43x16x7mm

Gerekli Program

Telefondan modüle komut göndermek için Bluetooth modülüyle cihazlarımızı eşleştirmemiz gerekiyor. Modülünüze koydğunuz şifreyi eşleşme için yazın ve eşleştirin

  • Windows kullanıcıları Bluetooth ile haberleşmek için, ücretsiz olarak Tera Term programını indirebilirler.
  • Android kullanıcıları ise haberleşme için Bluetooth Terminal isimli ücretsiz uygulamayı kullanabilirler.

Devre Şeması

arduinogeneluygulama_003_0

Çizim gelecegiyazanlar.turkcell.com.tr den alınmıştır.

Motor Sürücü – Arduino Pini Bağlantıları:

Arduino Motor Sürücü
8 INPUT 1
9 INPUT 2
13 INPUT 3
12 INPUT 4
11 ENABLE A
10 ENABLE B

 

Motor Sürücü – Motor Bağlantıları:

Sağ yada soldaki motorları 1 ve 2 diye seçin.Mesala sağdaki motorlar motor 1 olsun.Soldaki motorlar motor 2 olsun.Buna göre Sağdaki  motorların yani motor1 in + larını  output 1 e,  – lerini output 2 e verin. Soldaki motorların yani motor 2 nin + larını output 3 e,- lerini output 4 e verin.

Buna göre

Motor Motor Sürücü
Motor1 + OUTPUT 1
Motor1 – OUTPUT 2
Motor2 + OUTPUT 3
Motor2 – OUTPUT 4

 

Motor Sürücü Besleme Bağlantıları:

Arduinodan ve beslemeden (9 veya 12v) aldığınız toprağı motor sürücünün ground yerine verin.Ortak toprak oluşturup verin yani.

Besleme Motor Sürücü
+12 Volt yada +9 volt biz +9 verdik VCC
Toprak (- uç) GND
+5 Volt VS

Bluetooth Modülü Bağlantıları

Arduino Bluetooth Modülü
+3,3 Volt VCC
Tx Rx
Rx Tx
Toprak (- uç) GND

 

Kodu

int DonmeHizi = 175;
/* bu değişken ile motorların dönme hızı kontrol edilebilir */

/* motor sürücüsüne bağlanacak INPUT ve ENABLE pinleri belirleniyor */
const int sagileri = 9;
const int saggeri = 8;
const int solileri = 12;
const int solgeri = 13;
const int solenable = 11;
const int sagenable = 10;

void ileri(int hiz){
  /* ilk değişkenimiz sag motorun ikincisi sol motorun hızını göstermektedir.
   * motorlarımızın hızı 0-255 arasında olmalıdır.
   * Fakat bazı motorların torkunun yetersizliğiniden 60-255 arasında çalışmaktadır.
   * Eğer motorunuzdan tiz bir ses çıkıyorsa hızını arttırmanız gerekmektedir.
   */
  analogWrite(sagenable, hiz); /* sağ motorun hız verisi */
  digitalWrite(sagileri,HIGH); /* ileri dönme sağlanıyor */
  digitalWrite(saggeri,LOW); /* ileri dönme sağlanıyor */

  analogWrite(solenable, hiz); /* sol motorun hız verisi */
  digitalWrite(solileri, HIGH); /* ileri dönme sağlanıyor */
  digitalWrite(solgeri,LOW); /* ileri dönme sağlanıyor */
}

void sagaDon(int hiz){
  analogWrite(sagenable, hiz); /* sağ motorun hız verisi */
  digitalWrite(sagileri,LOW); /* geri dönme sağlanıyor */
  digitalWrite(saggeri,HIGH); /* geri dönme sağlanıyor */

  analogWrite(solenable, hiz); /* sol motorun hız verisi */
  digitalWrite(solileri, HIGH); /* ileri dönme sağlanıyor */
  digitalWrite(solgeri,LOW); /* ileri dönme sağlanıyor */
}

void solaDon(int hiz){
  analogWrite(sagenable, hiz); /* sağ motorun hız verisi */
  digitalWrite(sagileri,HIGH); /* ileri dönme sağlanıyor */
  digitalWrite(saggeri,LOW); /* ileri dönme sağlanıyor */

  analogWrite(solenable, hiz); /* sol motorun hız verisi */
  digitalWrite(solileri, LOW); /* geri dönme sağlanıyor */
  digitalWrite(solgeri,HIGH); /* geri dönme sağlanıyor */
}

void geri(int hiz){
  analogWrite(sagenable, hiz); /* sağ motorun hız verisi */
  digitalWrite(sagileri,LOW); /* geri yönde dönme sağlanıyor */
  digitalWrite(saggeri, HIGH); /* geri yönde dönme sağlanıyor */

  analogWrite(solenable, hiz); /* sol motorun hız verisi */
  digitalWrite(solileri, LOW); /* geri yönde dönme sağlanıyor */
  digitalWrite(solgeri, HIGH); /* geri yönde dönme sağlanıyor */
}

void dur()
{
  /* Tüm motorlar kitlenerek durma sağlanıyor */
  digitalWrite(sagileri, HIGH);
  digitalWrite(saggeri, HIGH);
  digitalWrite(solileri, HIGH);
  digitalWrite(solgeri, HIGH);
}

void setup(){
  /* Bluetooth için port açılıyor */
  Serial.begin(9600);
  
  /* motorları kontrol eden pinler çıkış olarak ayarlanıyor */
  pinMode(sagileri,OUTPUT);
  pinMode(saggeri,OUTPUT);
  pinMode(solileri,OUTPUT);
  pinMode(solgeri,OUTPUT);
  pinMode(sagenable,OUTPUT);
  pinMode(solenable,OUTPUT);
}

void loop(){
  if (Serial.available() > 0) {   /*Bluetooth’tan veri bekliyoruz */
    char tus = (char)Serial.read();
    if( tus == 'w' )
      ileri(DonmeHizi);
    if( tus == 's' )
      dur();
    if( tus == 'a' )
      solaDon(DonmeHizi);
    if( tus == 'd' )
      sagaDon(DonmeHizi);
    if( tus == 'x' )
      geri(DonmeHizi);
  }
}

Kodu gelecegiyazanlar.turkcell.com.tr den alınmıştır.

Admin Yorumu

20160513_152209

Devreyi denedik çalışıyor arkadaşlar.Resimde gördüğünüz aracımızın önündeki çarklar ve çarkların altındaki uzun metal parçası(tekerleklere takılan hani ismini unuttum)  bi işlevi yok şaseyi bir oyuncaktan söktüğümüz için üstünde kalmış .:) Proje ödevi olarak yaptık, hocanın hoşuna gitti. Öneri olarak Saseyi seçerken iyi seçin,tekerlekler yeri iyi tutsun.Paraya kıyıp duracell alın devre akım içiyor mübarek.Direk arduinonun işlemcisini çıkarıp delikli plakete de yapabilirsiniz hafif olması için.Motorları iyi seçin.Biz breadboard,lastik vs koyduğumuzdan pillerle beraber şase ağır oldu 6v motor kaldırmadı.Bide ne gerek var sürücüye entegre takıyım demeyin ısınıyor kaldırmıyor biz denedik. 🙂 Ha bu arada ben uğraşmayım derseniz 2 motorlu çarklı arabalar var internette onlara bakabilirsiniz.İyi çalışmalar 😉

50 Comments

  1. devre için teşekkürler, en kısa zamanda deneyeceğim. önce kendinizin deneyerek devreyi yayınlamanız çok güzel birşey, internet denenmemiş projeler ile dolu uğraşıp yapıyorsun sonra çalışmıyor eksiği çıkıyor. takipçinizim

    1. Merhabalar Yasin,
      Daha Önce O Modülle Çalışmadım. l298n ve dediğin modülün datasheetlerine bakıp karşılaştırabilirsin.

  2. merhaba bu projeyi ses kontrolü ile yapabilmek için gerekli kodları yazmam için yardımcı olabirmisiniz ?

    1. Dostum “BT Voice Control for Arduino” diye bir program var Google Play Store da onu indir.Bluetoothu kullanarak sesli komut veriyorsun. Kodu için ise “Arduino ve Android ile Ses Kontrolü” diye google da arat kodunu paylaşan site var.
      Kolay gelsin

    1. Kodun hepsini kopyaladığınızdan emin olduktan sonra tekrar deneyin.Hata devam ederse hatayı google da aratırsanız sonuca ulaşabilirsiniz.

  3. abi bu motor sürücü iki motor sürüyo biz 4 motor sürecez bişey olurmu yani çalışırmı

    1. Biz projede önde 2 tane 6v motor arkada 2 tane 9v motor denemiştik çokta verimli olmasada çalışmıştı.4 tane motor yazmıssın ama şimdi o motorların kaç voltluk olduğu vs önemli.Motorları doğru seçmelisiniz çok küçük olursa üstündeki yükü taşıyamaz büyük olursa pil dayanmaz.Seçtiğiniz motorları bir öğretmene yada bilene gösterirseniz daha faydalı olur sizin için.

  4. yaptım olamdı telefondan basıyorum işlev yok ışıklara basıyorum tekerlekler sürekli dönüyo neden

    1. O program ile bluetooth vasıtasıyla komut göndereceksiniz , bluetooh modülü ile arduino ya verilecek komut.

  5. Murat bey mrb.yeni başladım internet üzerinden aldığım ardunio UNO r3 devresi ama üzerinde bulunan uzun entegre gibi görünen o yok onun yerine 1cm 1 cm kadar tümleşik bağlantılı entg.var olurmu değiştireyimmi, size resim yollamak istedim ama buraya ekleyemedim cevabınızı bekliyorum teşekkürler

    1. Arduino Uno üzerinde ATMEGA328 entegresi vardır Mustafa Bey.Bizim yazdığımız program bu entegre içine yüklenip, arduino kartı üzerinde entegre çalışmaktadır.Entegrenin üstünde yazıyor mu ATMEGE328 ? Birde arduino nuz klon mu yoksa orjinal mi?

    2. hocam her şeyi yaptım kodu yükledim bağlantıları yaptım mobil uygulamayı indirdim peki uygulamayı nasıl kullanıcam?

      1. Merhabalar Mehmet,
        Uygulamada bir text ekranı var. Oraya istediğin yön için harfi yazacaksın. (w, s, a, d, x)

  6. KOLAY GELSİN BEN DE BU ŞEKİLDE BİR PROJE YAPICAM AMA KABLOLARDAKİ ÇATALLAŞMA OLAN KISMI NASIL BAĞLARIZ? YANİ İKİ KABLO NASIL BAĞLANICAK BİRBİRNE

      1. Kolay gelsin cevabiniz icin tesekkurler ama ben sorunumu cozdum fakat bu seferde farkli bir sorunum var devreyi ayni bu sekilde bagladigimda pilden bluetooth modulune giden kablodan dolayi sol motorlar calirken sag motorlar calismiyor yardimci olurmusunuz birde 4 pil baglamama ragmen bluetooth modulu 5 dk isik verdi sonra isik yanmdi ve baglanti kesildi baglanti varkende kontrol yapamadim

        1. Devre şemasına bakarak doğru bağladığınızdan emin olun.Büyük ihtimal motor sürücüyü yanlış bağlamışsınız.Vize dönemi olduğu için geç cevap veriyorum kusura bakmayın.

  7. 2 tane 9v pil takmama motor üstündeki yükü taşımadı motorları kumandalı arabalardan aldım neden çalışmamıştır aracı kaldırınca tekerler dönüyor fakat yere koyunca tekerler etmeye başlıyor

    1. Aynısı bizim başımıza da gelmişti.6v luk motor kullanmıştık kaldırınca dönüyordu yere koyunca gitmiyordu.Arkadaki tekerleri 9v luk motor takmıştık öne arkaya gitmeye başlamıştı.Motorlarınızı iyi seçin.

  8. abi merhaba devrede 1 pil kullanıldıgı gözüküyor ama son resimde 1 pil arduino beslemesi için gelmiş diger pilin nereye gittigini anlamadım yardımcı olurmusun

    1. Kardeşim 1 pili arduinoyu beslemek için kullanıyoruz diğer pil ise Devre Şemasında gösterilen pil.

  9. Merhaba ben projenizi yaptım fakat arabayı kontrol etmek için uygulamayı bulamadım. Uygulamanın linkini atabilirseniz çok iyi olur.

  10. Çok teşekkür ederim sayenizde yaptım ama hem sağa hem ileri gibi ara yönlere de gidebilen kodları nasıl ekleriz ?

    1. Koda bakarsanız solaDon ve SagaDon fonksiyonlarında sola dönme ve sağa dönmek için gerekli kod mevcut.Sola veya sağa dönmuyorsa sıkıntı başka bir tarafta olabilir.Örneğin öndeki motorlar düşük olabilir yada hazır şase kullanmadıysanız kullanılan tekerlek yeri tam tutmuyor olabilir bunun gibi birçok neden olabilir.Bir bilene projenizi göstermenizi tavsiye ederim.
      İyi Günler

    1. Merhabalar Evren,
      Yazıda bahsedilen programı telefonuna indirdiysen programda ekranın aşağı kısmında giriş yeri var.Ordan komutu girebiliyorsun.
      İyi Günler , İyi Çalışmalar

    1. Merhabaler Emir,
      Sağa ve sola dönme işlemi koda bakarsan , sağdaki ve soldaki motorların ileri ve geri dönmesi ile sağlanıyor.Örneğin sola dönmek için
      void solaDon(int hiz){
      analogWrite(sagenable, hiz); /* sağ motorun hız verisi */
      digitalWrite(sagileri,HIGH); /* ileri dönme sağlanıyor */
      digitalWrite(saggeri,LOW); /* ileri dönme sağlanıyor */
      analogWrite(solenable, hiz); /* sol motorun hız verisi */
      digitalWrite(solileri, LOW); /* geri dönme sağlanıyor */
      digitalWrite(solgeri,HIGH); /* geri dönme sağlanıyor */
      }
      Hareketleri sağlanmış.
      İyi günler , İyi Çalışmalar!

    1. Merhabalar Sadettin,
      Bluetooh un ışığının yandığından emin olduktan sonra tekrar deneyin.
      İyi Çalışmalar

      1. Hocam bluetooth modülünün ışığıda yanıp sönüyor ama bağlanmıyor arduino nûn klon olmasından kaynaklanıyor olabilir mi veya başka bir şey mi var acaba daha yeni başladığım için sorunun ne olduğunu kestiremiyorum

  11. Abi ben bluetooth a bağlanamadım yani komut kısmı çıkmadı siyah yere mi yazıcaz altta 2 tane buton var biri send diģeri clean yukardada connect yazıyo programı anlayamadım

  12. Abi merhaba ben arabayı yaptım oldu ama ben buna led birde buzzerdan korna yapmak istiyorum kodlarda yardımcı olurmusun

  13. Hocam merhaba ben sadecetek bir servo motor kullanmak istiyorum.Bunun için de motor sürücüsü gerekli mi? ve kodda ne gibi değişimler yapmam gerekiyor?

  14. Abi ben l298n motor sürücüsüne 4 motor nasıl bağlıcam amatör olduğum için pek bi bilgim yok
    hızlı cevap verirsen çok sevinirim

    1. İyi günler hocam.

      Kusura bakmayın geç cevap için malum okul ve sınavlar. L298n motor sürücüsü 2 motor içindir. diger 2 motor çıkışlara paralel olarak bağlanıyor. Yani daha kolay şekilde anlatımı, motordan sürücü kartından çıkardığın ucu motorlara aynı şekilde bağlanacak. Anlatım yolu ile uygulamayı en kolay şekli ile bu şekilde anlatabildiğimi düşünüyorum.

  15. Merhabalar, ben 4 adet 6v motor kullandım (devreyi arabaya monte etmeden masanın üstünde kurdum). Bunun dışında tamamen yukarıda gösterildiği gibi devreyi tamamladım. Ancak bir komut verdiğimde motorlardan çok ince bir ses çıkıyor ve motorlar dönmüyor. Sebebi ne olabilir acaba?

      1. Cevap için teşekkür ederim ancak ben bu işlerde biraz acemiyim, motorların watt değerini nasıl kontrol ederim? Motorları yerel bir elektronik marketten satın aldım, üzerlerinde sadece 6V 1000RPM Gear Motor yazıyor.

        1. Hocam üst üste mesajlar için çok özür dilerim. Ben motor sürücüsüne normalde olması gerektiği gibi iki tane motor bağlayınca her şey sorunsuz çalıştı. Acaba kablolama sırasında bir hata yapmış olabillir miyim? (İki motorun artı ucundan gelen kabloları breadboard’da birleştirip tek kablo haline getirmiş, onu da sürücünün output pinlerinden birine bağlamıştım. Çok komik bir şey yaptıysam lütfen gülmeyin 😀 ) Veya pil yetersiz geliyor olabilir mi? (Sizin yaptığınız gibi motor sürücüsüne bir adet 9V pil bağladım.) Yardımcı olursanız çok sevinirim.

          1. Vizeler ve dönem ödevleri dolayısı ile geç cevap verdiğim için çok üzgünüm. Dilerseniz 2 motor ile de kolayca yapabilirsiniz. Ön motorlar yerine bir sarhoş teker atarsınız kolayca çalışabilir. Ekstradan motor ve düzeneğe gerek kalmamış olur. Zaten dönüş hareketleri(sağa ve sola) bir bölümün motorlarının durup diğerlerinin onun üzerinden merkezcil hareketi ile oluyor. Paletli kepçelerin çalışma mantığı ile. Bu şekilde hem piliniz biraz daha uzun süre dayanır, hem devre üzerinde jumper kablo karışıklığı azalmış olur.

            İyi akşamlar dilerim.

  16. Merhaba ,ilk önce teşekkür ederim.. resimde breadboard kullandığı ve malzemelere bunu koymadığınizi gördüm de acaba oraya bağlantı nasıl olacak. Sanırım şemada sadece Arduino ve Bluetooth modülü bağlantı var.. peki ya sürücü kartı nasıl olacak?

Leave a Response

Murat Can
Elektrik-Elektronik Mühendisi