İçindekiler
Android Kontrollü RC Araba Yapımı
Merhaba arkadaşlar uzun bir aradan sonra arduino ile çılgın projelerde olabildiğince hızlı ilerlemeye devam ediyoruz. Bu yazımızın konusu Android Kontrollü RC Araba nasıl yapılır bunu öğreneceğiz. 🙂 İsterseniz zaman kaybetmeden hemen işe koyulalım. 🙂
Malzeme Listesi
1- Herhangi Bir Arduino Modeli
2- L298D Motor Sürücü
3- Bluetooth Modül (Hc-06 veya Hc-05)
4- 2 X Redüktörlü Dc Motor
5- Robot Şase
Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz 🙂 Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir.
Android Kontrollü RC Araba Devre Şeması
Arduino ve L293D Bağlantısı
L293D ve DC Motor bağlantıları
Arduino ve Bluetooth Modül Bağlantısı
Yazılım
Bu proje için 2 tür yazılıma ihtiyaç duyuyoruz. Birincisi Android için olan uygulamamız. İkincisi ise Arduino için gerekli olan yazılım.
İlk olarak uygulamamızdan başlayalım..
Telefon uygulamamızda uygulamayı açmadan bluetooth modülümüzü telefonumuzla eşleştirmemiz lazım ilk eşleşmede modül şifre ister ve şifre genellikle “1234” tür değiştirmediyseniz..
Uygulamayı buradan indirebilirsiniz..
Kod
Minik bir not: Arkadaşlar siteden kodu kopyalayınca tırnak işaretini farklı alıyor ve kod tam anlamıyla çalışmıyor kodun sağlıklı çalışabilmesi için kodu indirmenizi tavsiye ederim.
Projede kullanılan yazılım kodlarını buradan indirebilirsiniz 🙂
Bir yazının daha sonuna geldik umarım faydalı olmuştur anlamadığınız veya kafanıza takılan yerler olursa yorumda veya kişisel sosyal medya hesaplarımdan ulaşabilirsiniz. Kolay Gelsin 🙂
// DONANIM PLUS ELEKTRONİK // MODİFASYON TOLGA SOYTEPE // İNSTAGRAM TOLGASYTP //www.donanimplus.com //L298N Bağlantısı const int DCMotorA1 = 5; // L298N'in IN3 Girişi const int DCMotorA2 = 6; // L298N'in IN1 Girişi const int DCMotorB1 = 10; // L298N'in IN2 Girişi const int DCMotorB2 = 9; // L298N'in IN4 Girişiint 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 alabilirvoid setup() { // Pinlerimizi belirleyelim pinMode(DCMotorA1, OUTPUT); pinMode(DCMotorA2, OUTPUT); pinMode(DCMotorB1, OUTPUT); pinMode(DCMotorB2, 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(DCMotorA1, vSpeed); analogWrite(DCMotorA2, 0); analogWrite(DCMotorB1, vSpeed); analogWrite(DCMotorB2, 0); } /**********************İleri Sol************************/ //Gelen veri 'G' ise araba ileri sol(çapraz) gider. else if (state == 'G') { analogWrite(DCMotorA1,vSpeed ); analogWrite(DCMotorA2, 0); analogWrite(DCMotorB1, 100); analogWrite(DCMotorB2, 0); } /**********************İleri Sağ************************/ //Gelen veri 'I' ise araba ileri sağ(çapraz) gider. else if (state == 'I') { analogWrite(DCMotorA1, 100); analogWrite(DCMotorA2, 0); analogWrite(DCMotorB1, vSpeed); analogWrite(DCMotorB2, 0); } /***********************Geri****************************/ //Gelen veri 'B' ise araba geri gider. else if (state == 'B') { analogWrite(DCMotorA1, 0); analogWrite(DCMotorA2, vSpeed); analogWrite(DCMotorB1, 0); analogWrite(DCMotorB2, vSpeed); } /**********************Geri Sol************************/ //Gelen veri 'H' ise araba geri sol(çapraz) gider else if (state == 'H') { analogWrite(DCMotorA1, 0); analogWrite(DCMotorA2, 100); analogWrite(DCMotorB1, 0); analogWrite(DCMotorB2, vSpeed); } /**********************Geri Sağ************************/ //Gelen veri 'J' ise araba geri sağ(çapraz) gider else if (state == 'J') { analogWrite(DCMotorA1, 0); analogWrite(DCMotorA2, vSpeed); analogWrite(DCMotorB1, 0); analogWrite(DCMotorB2, 100); } /***************************Sol*****************************/ //Gelen veri 'L' ise araba sola gider. else if (state == 'L') { analogWrite(DCMotorA1, vSpeed); analogWrite(DCMotorA2, 150); analogWrite(DCMotorB1, 0); analogWrite(DCMotorB2, 0); } /***************************Sağ*****************************/ //Gelen veri 'R' ise araba sağa gider else if (state == 'R') { analogWrite(DCMotorA1, 0); analogWrite(DCMotorA2, 0); analogWrite(DCMotorB1, vSpeed); analogWrite(DCMotorB2, 150); } /************************Stop*****************************/ //Gelen veri 'S' ise arabayı durdur. else if (state == 'S'){ analogWrite(DCMotorA1, 0); analogWrite(DCMotorA2, 0); analogWrite(DCMotorB1, 0); analogWrite(DCMotorB2, 0); } }
Minik bir not: Arkadaşlar siteden kodu kopyalayınca tırnak işaretini farklı alıyor ve kod tam anlamıyla çalışmıyor kodun sağlıklı çalışabilmesi için kodu indirmenizi tavsiye ederim.
Projede kullanılan yazılım kodlarını buradan indirebilirsiniz 🙂
Bir yazının daha sonuna geldik umarım faydalı olmuştur anlamadığınız veya kafanıza takılan yerler olursa yorumda veya kişisel sosyal medya hesaplarımdan ulaşabilirsiniz. Kolay Gelsin 🙂
Yorum Yap