Arduino bluetooth üzrinden gelen veriyi kontrol ettirmek

Mçınar

Kilopat
Katılım
5 Ağustos 2019
Mesajlar
461
Arduino bluetooth üzrinden gelen veriyi (datayı) sürekli nasıl kontrol ettirmeliyiz? For yada if mi kullanmamız lazım?
Çünkü "if(bt.available()) bletooth" mevcut kısmını 1 kere kontrol ettiriyor.

Kod:
if(bt.available()) // BLUETOOTH MEVCUT İSE
{
  char data =bt.read();
  Serial.println(data);

if(data == 'b')
{
// LEDİ YAKKKKK
}

}
else if(data != 'b') //  data sürekli kontrol ediliyor b değil ilse yani uygulamadan çıkıldığı zaman şunları yappp
{
// LEDİ SÖNDÜRRR.
}
 
Arduino bluetooth üzrinden gelen veriyi (datayı) sürekli nasıl kontrol ettirmeliyiz? For yada if mi kullanmamız lazım?
Çünkü "if(bt.available()) bletooth" mevcut kısmını 1 kere kontrol ettiriyor.

Kod:
if(bt.available()) // BLUETOOTH MEVCUT İSE
{
  char data =bt.read();
  Serial.println(data);

if(data == 'b')
{
// LEDİ YAKKKKK
}

}
else if(data != 'b') //  data sürekli kontrol ediliyor b değil ilse yani uygulamadan çıkıldığı zaman şunları yappp
{
// LEDİ SÖNDÜRRR.
}
void loop kisminda mi yapiyorsun? Setup 1 kere, loop surekli calisir. Yani bluetooth surekli available ise yazmasi gerek bence.
 
void loop kisminda mi yapiyorsun? Setup 1 kere, loop surekli calisir. Yani bluetooth surekli available ise yazmasi gerek bence.
evet hocam loop kısmında olmadı ;
void loop kisminda mi yapiyorsun? Setup 1 kere, loop surekli calisir. Yani bluetooth surekli available ise yazmasi gerek bence.
en yukarıda
int btt; tanımladım ;

if(bt.available())
{

char data =bt.read();
Serial.println(data);
yedek_data=data;

// YAPILAN İŞLEMLER

btt=data; dedim datayı btt ye at dedim.
btt gelen veriden farklı ise else kısmını çalıştır, dedim.yani sürekli datayı getir b ise zaten bağlı iken durum uygulamadan çıkıld. b getirmicek zaten !=b değilse kullandım
değilse zaten uygulamadan çıkılmış yani b göndermediğini anlıcam. o zaman LEDİ söndürücek


}
else if(btt == 'b')
{
Serial.println("");
Serial.print("btt = ");
Serial.println(btt);
Serial.println("BLUETOOTH MEVCUT DEĞİLSE");
// LEDİ SÖNDÜR

}
Do While döngüsü kullanman gerek.
Do while ile nasıl yapabiliriz
void loop kisminda mi yapiyorsun? Setup 1 kere, loop surekli calisir. Yani bluetooth surekli available ise yazmasi gerek bence.
Şimdi böyle bir çıktı alıyorum olmadı .

uygulamaya girdim bletooth bağlı old. b gönder dedim gönderdi.
yukarıda data ile işlem yaptık ekrana yaz dedik 98 neden algıladı anlamadım.
bt.PNG


sonra 1 kez b yi ekrana yazdırdı gitti uygulamadan çıktığımda bile btt=58 yazıyor bi yardım eder misiniz ?
bttt.PNG
 
Son düzenleme:
while(bt.available())
{
char data =bt.read();
Serial.println(data);

if(data == 'b')
{
// LEDİ YAKKKKK
}

}
else if(data != 'b') // data sürekli kontrol ediliyor b değil ilse yani uygulamadan çıkıldığı zaman şunları yappp
{
// LEDİ SÖNDÜRRR.

}
}

Dener misin?

Dipnot: while döngüsü kullanılmalıymış.
 
while(bt.available())
{
char data =bt.read();
Serial.println(data);

if(data == 'b')
{
// LEDİ YAKKKKK
}

}
else if(data != 'b') // data sürekli kontrol ediliyor b değil ilse yani uygulamadan çıkıldığı zaman şunları yappp
{
// LEDİ SÖNDÜRRR.

}
}

Dener misin?

Dipnot: while döngüsü kullanılmalıymış.
Hocam şimdi while ile tekrar denedim sonuç aldım ama tam istediğimiz gibi olmadı ama çalıştı while ile nasıl yapabiliriz şimdi yardım eder misiniz ???


[CODE title="kod"]
char yedek_data='o';
-------------------------------------

while(bt.available())
{
char data =bt.read();
Serial.println(data);
yedek_data=data;

if(data == 'e')
{

// yapılan işlemler
}
if(data == 'h')
{
//yapılan işlemler
}

}
if(yedek_data != 'b')
{
Serial.println(" if(yedek_data != 'b') kısmıııııııııııııııııııııı = ");

leds[4].setRGB(0, 0, 0);//beyaz yak.
FastLED.show(); //Değişiklikleri gösteriyoruz
delay(5); //
}[/CODE]

sonn.png

yani sürekli e de kalıyor çünkü giriş yapıldığınada e gönder diyorum. öyle kod yazmam lazımki uygulamadan çıktığımda başka bir şey göndersin.

___________________________________yardım plssss______________________________________
 
Son düzenleme:
Dostum while döngüsü parantez içindeki koşul sağlandıkça çalışır. Do while döngüsü de koşul sağlanma şartı olan ancak ilk kez çalışırken sağlanma şartı aranmayan (en az 1 kere koşul sağlansa da sağlanmasa da çalışacak) durumlarda kullanılır. Eğer bir kez çalıştıktan sonra koşul sağlandığı müddetçe çalışması koşul sağlanmıyorsa durması isteniyorsa Do While kullanılır.

Senin programın koşul sağlandıkça çalışacağı için while döngüsüne alman gerek. Hata alıyorsan ya koşul ifaden ya da yazdığın komutlar isteiğini karşılamıyor demektir. İstediğin şeyin tam olarak ne olduğunu anlamadığımdan ve projenin tamamına nazaran sınırlı bir kod bloğu olduğundan yardımcı olamıyorum.
 
Dostum while döngüsü parantez içindeki koşul sağlandıkça çalışır. Do while döngüsü de koşul sağlanma şartı olan ancak ilk kez çalışırken sağlanma şartı aranmayan (en az 1 kere koşul sağlansa da sağlanmasa da çalışacak) durumlarda kullanılır. Eğer bir kez çalıştıktan sonra koşul sağlandığı müddetçe çalışması koşul sağlanmıyorsa durması isteniyorsa Do While kullanılır.

Senin programın koşul sağlandıkça çalışacağı için while döngüsüne alman gerek. Hata alıyorsan ya koşul ifaden ya da yazdığın komutlar isteiğini karşılamıyor demektir. İstediğin şeyin tam olarak ne olduğunu anlamadığımdan ve projenin tamamına nazaran sınırlı bir kod bloğu olduğundan yardımcı olamıyorum.
hocam uygulamadan giriş yaptığımda bluetooth uygulaması e değerini gönderiyor ve ledim yanıyor bluetooh bağlı olduğunu anlamak için sonra uygulamadan çıkıldığında bluetooth.available () aktif olmadığı zamanda farklı değer göndersin oda ledi kapatsın bende bleutooh un bağlı olmadığını anlıyım tam istediğim bu aslında... yardım eder misin ?
hocam uygulamadan giriş yaptığımda bluetooth uygulaması e değerini gönderiyor ve ledim yanıyor bluetooh bağlı olduğunu anlamak için sonra uygulamadan çıkıldığında bluetooth.available () aktif olmadığı zamanda farklı değer göndersin oda ledi kapatsın bende bleutooh un bağlı olmadığını anlıyım tam istediğim bu aslında... yardım eder misin ?
Hocam dediğiniz gibi aslında while sürekli çalışması lazım iken 1 kez çalışıyor örneğide burda yani tam istediğimiz gibi çalışmıyor ??
hhh.png

hocam uygulamadan giriş yaptığımda bluetooth uygulaması e değerini gönderiyor ve ledim yanıyor bluetooh bağlı olduğunu anlamak için sonra uygulamadan çıkıldığında bluetooth.available () aktif olmadığı zamanda farklı değer göndersin oda ledi kapatsın bende bleutooh un bağlı olmadığını anlıyım tam istediğim bu aslında... yardım eder misin ?

Hocam dediğiniz gibi aslında while sürekli çalışması lazım iken 1 kez çalışıyor örneğide burda yani tam istediğimiz gibi çalışmıyor ??
hhh.png
bu available kodu girişte bir kez veri gönderiyor ondan dolayı while döngüsün çalışmasını etkileyebilir mi ???
 
Son düzenleme:
hocam uygulamadan giriş yaptığımda bluetooth uygulaması e değerini gönderiyor ve ledim yanıyor bluetooh bağlı olduğunu anlamak için sonra uygulamadan çıkıldığında bluetooth.available () aktif olmadığı zamanda farklı değer göndersin oda ledi kapatsın bende bleutooh un bağlı olmadığını anlıyım tam istediğim bu aslında... yardım eder misin ?

Hocam dediğiniz gibi aslında while sürekli çalışması lazım iken 1 kez çalışıyor örneğide burda yani tam istediğimiz gibi çalışmıyor ??
Eki Görüntüle 1387830

bu available kodu girişte bir kez veri gönderiyor ondan dolayı while döngüsün çalışmasını etkileyebilir mi ???
Evet etkileyebilir. Onu da şöyle çözebilirsin sanırım

int checkfunction()
{
if (bt.available()==1)
return 1;
else
return 0;
}

while(checkfunction()==1)
 

Technopat Haberler

Geri
Yukarı