Arduino-Bluetooth Modülü (HC-05) bacak bağlantıları : Arduino-Bluetooth pin connection
Arduino RX(dijital 0 bacağı) – Bluetooth Module TX
Arduino TX(dijital 1 bacağı) – Bluetooth Module RX
/* * Arduino Bluetooth String Okuma * Mustafa SOLAK - www.mustafasolak.com - 21.04.2019 * */ const byte karakterSayisi = 90; char alinanKarakterler[karakterSayisi]; boolean yeniVeri = false; char gelenVeri; // gerekli ayarlar yapılıyor void setup() { pinMode(13,OUTPUT); Serial.begin(9600); Serial.println("Arduino Bluetooth String Okuma İşlemi Başlatıldı"); } // Ana fonksiyon void loop() { veriOku(); gelenVeriyiGoster(); if(strcmp( alinanKarakterler, "ledyak") == 0) Serial.println("ledyakilacak"); delay(1000); } void veriOku() { static boolean veriAliniyor = false; static byte msSayac = 0; char veriBaslangicKarakteri = '<'; char veriBitisKarakteri = '>'; char gelenKarakter; while (Serial.available() > 0 && yeniVeri == false) { // get all bytes from buffer gelenKarakter = Serial.read(); if (veriAliniyor == true) { if (gelenKarakter != veriBitisKarakteri) // Eğer hala veri alınıyorsa { alinanKarakterler[msSayac] = gelenKarakter; msSayac++; // Eğer gelen karakter sayısı belirlediğimizden fazla olursa bunu sınırlandırıyoruz. // Maksimum bizim const byte karakterSayisi = 90; ile belirlediğimiz 90 karakter olmalı if (msSayac >= karakterSayisi) { msSayac = karakterSayisi - 1; } } else // veri sonlandırma karakteri > görüldü. en sona \0 sonlandırma karakteri ekliyorum { alinanKarakterler[msSayac] = '\0'; veriAliniyor = false; msSayac = 0; yeniVeri = true; } } else if (gelenKarakter == veriBaslangicKarakteri) // veri alma işlemi başladı { veriAliniyor = true; } } } // bu fonksiyon veriOku() fonksiyonu ile gelmiş olan veriyi gösterir void gelenVeriyiGoster() { if (yeniVeri == true) { Serial.println(alinanKarakterler); yeniVeri = false; } }