Arduino Bluetooth String Okuma | Arduino Bluetooth Read String From Serial

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;
  }
}

 

Bir cevap yazın