Arduino bluetooth modül gelen değerleri karşılama

Başlatan ds01, 18 Ağustos 2015, 12:11:39

ds01

İyi günler.Elimde aşağıdaki resimdeki gibi bir android program var.Bluetooth modül ve arduino yardımıyla ledin parlaklığını artırıp azaltmaya yarıyor.Programdaki brightness değerini artırınca ledin parlaklığı artıyor.Azalınca ledin parlaklığı azalıyor.Ben bu android programdaki progressbarı hareket ettirince gelen değeri arduino seri monitörde en aşağıdaki kod yardımıyla görebiliyorum.






Anlayamadığım nokta şu android telefondan değeri yolladığımda veriler tek tek gidiyor yani 160 yolladığımda serial monitörde şu şekilde oluşuyor.


...
...
1
5
9
1
6
0





bir türlü gelen veriyi bir değişkene atayamadım.Nasıl yapılabilir.


Benim yazdığım kodlar:
#include <SoftwareSerial.h>

SoftwareSerial bluetooth(10, 11); // RX, TX
char data;
String data2;

void setup()
{
  
  Serial.begin(57600);
  bluetooth.begin(9600);
  pinMode(5,OUTPUT);
  while (!Serial) {
    ; 
  }
}

void loop() 
{
  while (bluetooth.available()>0){
    data=(char)bluetooth.read();
    Serial.println(data);
  }
    }



baran123

Modülü AT komutlar ile 57600 Bauduna ayarladınız mı ?
Bu arada HC modül mü ?

ds01

Alıntı yapılan: Baran Ekrem - 19 Ağustos 2015, 17:42:09
Modülü AT komutlar ile 57600 Bauduna ayarladınız mı ?
Bu arada HC modül mü ?

HC-05 kullandığım modül. Baudu 9600 geldiği gibi hiç oynamadım.

baran123

Porgramda neden 57600 yaptınız ? 2 tarafında aynı olması lazım.
9600 yapınız.

ds01

Alıntı yapılan: Baran Ekrem - 19 Ağustos 2015, 18:37:37
Porgramda neden 57600 yaptınız ? 2 tarafında aynı olması lazım.
9600 yapınız.

haklısınız 9600 yaptım.Veri alışverişinde sıkıntı yok geliyor.Fakat gelen 0 ile 255 arasındaki sayıları nasıl tutacağım orası biraz sıkıntılı basamak sayılarından dolayı.

Kabil ATICI

gönderen ve alan programı kendin oluşturuyorsan,değerin string olarak geliyor. Buna göre veri gönderdiğin zaman verinin başına ve sonuna bir rakam olmayan bir karakter ekle. Arduino'da da bunu karakterleri çıkartarak gelen veriyi birleştir. rakama dönüştür.
Bunun için ister kendin kod oluştur ister hazır kütüphaneleri kullan. sonrası sana kalmış.

Hızların aynı olması gerekmez. Çünkü bu veri iletişim olaylarının birisi bluatooth için diğeri veri görüntülemek için bilgisayar bağlantısında kullanılıyor görülüyor.
  bluatooth 9600 kullanıyor olmanız zaten bağlantıyı sağlayacaktır.Ki zaten sağlamış...
ambar7

Gökhan BEKEN

Alıntı yapılan: ds01 - 19 Ağustos 2015, 18:51:10
haklısınız 9600 yaptım.Veri alışverişinde sıkıntı yok geliyor.Fakat gelen 0 ile 255 arasındaki sayıları nasıl tutacağım orası biraz sıkıntılı basamak sayılarından dolayı.
Basamak ile bir işiniz yok, zaten seriporttan 0 ila 255 arasında olmayan birşey gönderemezsiniz.
Bu aralıktaki herşeyi tek byte ile göndermiş oluyorsunuz ki ,1 byte zaten 0-255 arası değer alır.
örnek:
Serial.print(159); //159 sayısını gönder

detaylar: https://www.arduino.cc/en/Serial/Print
Özel mesaj okumuyorum, lütfen göndermeyin.

ds01

 yardımlarınız için ne kadar teşekkür etsem az verdiğiniz bilgiler gerçekten çok makbule geçti.Yaptım sonunda.Android program üzerinden rakamlarla birlikte  '#' karakterini gönderdim o şekilde gelen rakamları ayırabildim.