Bluetooth Kontrollü Araç Uygulaması

Görselde bluetooth modülün RX ve TX pinlerinin SoftwareSerial.h kütüphanesi kullanılarak
8 ve 7 numaralı pinlere bağlanması gösterilmiştir. Modülün TX ucu Arduino’nun RX (8. pin) ucuna, modülün RX ucu Arduino’nun TX (7. pin) ucuna bağlanmalıdır. Ancak modülün TX ucundan
çıkan 3,3 V Arduino RX ucunda lojik 1 olarak kabul edilirken Arduino’nun TX ucundan çıkan 5 V
modülün RX ucuna doğrudan uygulandığında bozulmasına neden olacaktır. Bu nedenle
Arduino’nun TX ucundan çıkan 5 V’u 3,3 V’a düşürmek için gerilim bölücü dirençler
kullanılmalıdır.

Motor sürücüde ENA ve ENB uçlarındaki jumper takılı bırakılarak diğer dört girişten analogWrite
fonksiyonuyla PWM verilmiştir.

Devreye enerji verildiğinde bluetooth modülle haberleşmek için Android telefondan bluetooth
bağlantısı açılarak hc-05 cihazı bulunur. Varsayılan şifre “1234” veya “0000”dır. Android telefondan veri gönderebilmek için play storedan “Arduino bluetooth controller” benzeri uygulamalar
kullanılır (Görsel 3.77) veya MIT app invertor ile akıllı telefon uygulaması yapılır Görselde
Telefondan gönderilen karakterlere göre aracın yönü belirlenir.

#include <SoftwareSerial.h> // Arduino IDE ile gelir. Kurulum gerektirmez.
SoftwareSerial bluetooth(8, 7); // RX, TX (Arduino tarafında.)
const byte IN1 = 10, IN2 = 9, IN3 = 6, IN4 = 5; // PWM pinleri. (enA ve enB'de jumper takılı).
char karakter;
byte hiz = 255; // Başlangıç hızı.

void setup() {
  bluetooth.begin(9600); // Bluetooth iletişimi başlat.
}
void loop() {
  if (bluetooth.available()) { // Veri geliyorsa...
    karakter = bluetooth.read(); // Gelen karakteri karakter değişkenine ata.
    if (karakter == 'a') { // ileri.
      analogWrite(IN1, hiz);
      analogWrite(IN2, 0);
      analogWrite(IN3, hiz);
      analogWrite(IN4, 0);
    } else if (karakter == 'b') { // Geri.
      analogWrite(IN1, 0);
      analogWrite(IN2, hiz);
      analogWrite(IN3, 0);
      analogWrite(IN4, hiz);
    } else if (karakter == 'c') { // Sol.
      analogWrite(IN1, hiz);
      analogWrite(IN2, 0);
      analogWrite(IN3, 0);
      analogWrite(IN4, hiz);
    } else if (karakter == 'd') { // Sağ.
      analogWrite(IN1, 0);
      analogWrite(IN2, hiz);
      analogWrite(IN3, hiz);
      analogWrite(IN4, 0);
    } else if (karakter == 'e') { // Dur.
      analogWrite(IN1, 0);
      analogWrite(IN2, 0);
      analogWrite(IN3, 0);
      analogWrite(IN4, 0);
    }
  }
}

#include <SoftwareSerial.h> // Arduino IDE ile gelir. Kurulum gerektirmez.
SoftwareSerial bluetooth(8, 7); // RX, TX (Arduino tarafında.)
const byte IN1 = 10, IN2 = 9, IN3 = 6, IN4 = 5; // PWM pinleri. (enA ve enB'de jumper takılı).
char karakter;
int hiz = 255; // Başlangıç hızı.

void setup() {
  bluetooth.begin(9600);
}
void loop() {
  if (bluetooth.available()) { // Veri geliyorsa...
    karakter = bluetooth.read(); // Gelen karakteri karakter değişkenine ata.
    if (karakter == 'a') { // ileri.
      analogWrite(IN1, hiz);
      analogWrite(IN2, 0);
      analogWrite(IN3, hiz);
      analogWrite(IN4, 0);
    } else if (karakter == 'b') { // Geri.
      analogWrite(IN1, 0);
      analogWrite(IN2, hiz);
      analogWrite(IN3, 0);
      analogWrite(IN4, hiz);
    } else if (karakter == 'c') { // Sol.
      analogWrite(IN1, hiz);
      analogWrite(IN2, 0);
      analogWrite(IN3, 0);
      analogWrite(IN4, hiz);
    } else if (karakter == 'd') { // Sağ.
      analogWrite(IN1, 0);
      analogWrite(IN2, hiz);
      analogWrite(IN3, hiz);
      analogWrite(IN4, 0);
    } else { // Yön karakterleri gelmediyse...
      String veri = bluetooth.readString(); // 0 - 255 arası karşılığı olan gelen karakterleri oku.
    int hiz = veri.toInt(); // Gelen metni integer veri tipine dönüştür.

    }
  }  else  { // Dur.
    analogWrite(IN1, 0);
    analogWrite(IN2, 0);
    analogWrite(IN3, 0);
    analogWrite(IN4, 0);
  }
}

Kütüphanesiz kodlar. Bluetooth modülü 0 ve 1 nolu pinlere bağlı. Program yüklerken pinleri çıkarın.

const byte IN1 = 10, IN2 = 9, IN3 = 6, IN4 = 5; // PWM pinleri. (enA ve enB'de jumper takılı).
char karakter;
byte hiz = 255; // Başlangıç hızı.

void setup() {
  Serial.begin(9600); // Bluetooth iletişimi başlat.
}
void loop() {
  if (Serial.available()) { // Veri geliyorsa...
    karakter = Serial.read(); // Gelen karakteri karakter değişkenine ata.
    if (karakter == 'a') { // ileri.
      analogWrite(IN1, hiz);
      analogWrite(IN2, 0);
      analogWrite(IN3, hiz);
      analogWrite(IN4, 0);
    } else if (karakter == 'b') { // Geri.
      analogWrite(IN1, 0);
      analogWrite(IN2, hiz);
      analogWrite(IN3, 0);
      analogWrite(IN4, hiz);
    } else if (karakter == 'c') { // Sol.
      analogWrite(IN1, hiz);
      analogWrite(IN2, 0);
      analogWrite(IN3, 0);
      analogWrite(IN4, hiz);
    } else if (karakter == 'd') { // Sağ.
      analogWrite(IN1, 0);
      analogWrite(IN2, hiz);
      analogWrite(IN3, hiz);
      analogWrite(IN4, 0);
    } else if (karakter == 'e') { // Dur.
      analogWrite(IN1, 0);
      analogWrite(IN2, 0);
      analogWrite(IN3, 0);
      analogWrite(IN4, 0);
    }
  }
}

Benzer Temrinler & Yazılar

  • Parmak İzi Okuma Uygulaması

    Görseldeki parmak izi okuma uygulaması görülmektedir. UART haberleşme protokolü kullanılan sensör Arduino’da SoftwareSerial kütüphanesi kullanılarak 2 ve 3 numaralı pinlere bağlanmıştır. Görselde parmak izi sensörünün pin yapısı verilmiştir. Parmak izi kaydetme programıyla kaydedilen parmak izleri, parmak izi okuma programıyla test edilir. İşlemler seri ekran kullanılarak yapılır. VCC: 3,3 V-5 V besleme. GND: Topraklama pini. TX:…

  • Ultrasonik Sensör Uygulaması

    İnsanlar, frekansı 16 Hz ile 20 kHz arasında olan sesleri duyabilmektedir. Ultrasonik ses, insanınişitme sınırından daha yüksek frekanslardaki ses dalgalarıdır. Görselde ses frekans aralıkları görülmektedir. Görseldeki HC-SR04 ultrasonik sensör ve pin yapısı görülmektedir. HC-SR04 ultrasonik sensör üzerinde alıcı ve verici olmak üzere iki yüzey bulunur. Verici yüzeyden 15 derece açıyla ortama 40 kHz frekansta ultrasonik…

  • Google firebase kullanımı

    Google firebase kullanımı NodeMCU intenette herhangi bir server üzerinde database kullanılarak kontrol edilebilir. Google firebase ücretsiz bir database uygulamasıdır ve ESP kartları için yazılmış kütüphanelere Arduino IDE üzerinden ulaşılabilir. Database oluşturmak için “firebase.google.com” adresine Google hesabıyla giriş yapılarak “Got to console” tıklanır (Görsel 6.17). Görsel 6.17: Firebase konsoluna giriş “Add Project” tıklanır (Görsel 6.18). Görsel…

  • Nem Sensörü Uygulaması

    DHT sensörleri, kapasitif nem sensörü ve termistör (NTC) olmak üzere iki parçadan oluşur. İçindeanalog dijital dönüştürü vardır. Görsel 3.15a’da DHT11 ve DHT22’nin pin yapısı görülmektedir.DHT11 ve DHT22 aynı pin çıkışına sahiptir ancak bunların farklı özellikleri vardır. DHT11 0 ile 50 °Carasındaki sıcaklığı ±2 °C doğrulukla verirken DHT22 -40 ile 80 °C arasındaki sıcaklığı ±0,5 °Cdoğrulukla…

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir.