Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Arduino HC-06

Başlatan veliusta, 27 Eylül 2014, 02:04:54

veliusta



Elimde bir android uygulaması var. Butonları filan var. Bastığımda Gönderilen veriler resimdeki gibi.
Bu buton ile LED Nasıl yakarım?
Aşağıda birşey yapmaya çalıştım ama derlenmedi.

void loop()
{
 if(myBluetooth.available())
 {
  delay(1);
   
  while(myBluetooth.available()>0)
    {
     deger =myBluetooth.read();
     Serial.println(deger);
     if(deger==<){
      if(deger==T){
       if(deger==o){
        if(deger==g){
         if(deger==g){
          if(deger==l){
           if(deger==e){
             if(deger==:){
               if(deger==1){
                 if(deger==:){
                   if(deger==f){
                     if(deger==a){
                       if(deger==l){
                         if(deger==s){
                           if(deger==e){
                              if(deger==>){
                                digitalWrite(led, HIGH);
                                          }
                                         }
                                        }
                                       }
                                      }
                                     }
                                    }
                                   }
                                  }
                                 }
                                }
                               }
                              }
                             }
                            }
                           }
                          }
                         }
                        }

Gökhan BEKEN

#1
Derlenmesi mümkün değil
if(deger==<){ satırı hatalı, if(deger=='<'){ olarak değiştirin, sadece bu kısmı değil bütün iflerde aynı hata var, mesela  if(deger=='T') şeklinde yaparsanız olur.
Diğer hata:
"deger" adlı değişken aynı anda hem "T" hem "o" hemde diğerleri olamaz. İç içe iflerin çalışabilmesi mümkün değil bu durumda.
Gelen verilerin sonuna bir ayrıt edici işaret ekleyin, o işareti görene kadar verileri okuyun, eğer o işaret gelmişse, gelen veriyi o zaman kontrol edin, ama bir döngü ile yapın bunu. Verinin ne olduğunu anladıktan sonra gerekli işlemleri yaparsınız.
Özel mesaj okumuyorum, lütfen göndermeyin.

Kabil ATICI

#2
int bayrak=0;
int sayac=0;
int tamponDizi[20];

PROGMEM int const dege1Dizi[]={
 '<', 't','o','g','g','l','e',':','1',':','t','r','u','e','>'};
PROGMEM int const dege2Dizi[]={
 '<', 't','o','g','g','l','e',':','1',':','f','a','l','s','e','>'};
int hata=0;


değişkenler ve sabitler

  while(myBluetooth.available()>0)
  {
     deger =myBluetooth.read();
     Serial.println(deger);
if (deger=='<')
{
bayrak=1; //haberleşme başlıyor
}
if (deger=='>')
{
tamponDizi[sayac]=deger;
bayrak=0;//haberleşme durdu
}
if (bayrak==1)
{
tamponDizi[sayac]=deger;
sayac++;
}
if ((bayrak==0)&&(sayac!=0))
{
sayac=0;
 for (int i=0;i<20;i++)
{
  if((tamponDizi[i]!=dege1Dizi[i]))
  {
    hata=1;
i=20;
}
if((tamponDizi[i]=='>')&&(hata==0))
{
digitalWrite(led1,HIGH);
i=20;
}
}
}
}

bir kodun incelenmesi
Bir yerlerde program ile ilgili bir hata olabilir deneme şansım yoktu.

for (int i=0;i<20;i++)
{
  if((tamponDizi[i]!=dege2Dizi[i]))
  {
    hata=1;
i=20;
}
if((tamponDizi[i]=='>')&&(hata==0))
{
digitalWrite(led2,HIGH);
i=20;
}
}

ikinci led için...
Aslında bu bölümü kütüphane haline getirmek daha uygun olurdu...
ambar7