App inventor2 ile Arduino

Kodla Büyü

selcuklu

Seçkin Üye
Seçkin Üye
Mesajlar
915
Arduino ya app inventor da buton yardımıyla artan ya da azalan değer atamak istiyorum. 20 birim artma işlemi butona basılınca çalışıyor ancak tekrar sıfırlıyor. Sanki değişkene ilk atadığım 0 değeri loop içinde çalışıyor . Uygulama ve arduino kodları görselde. Slider yardımıyla değer atadığımda da aynı sorunla karşılaştım. Nerede hata yapıyorum acaba.
app1.PNG
app2.PNG
 
pardon düzelteyim shiking değil initialize olacak.
hata yok hocam aynı sorun tinkercad tede oluyor. app inventora eklediğiniz kodlar sürekli çalışır. siz değer değişkenini 0 yap kodu koyduğunuz için ve bu kod sürekli çalıştığı için değişken hep 0 değerini alıyor. dediğim gibi aynı sorun tinkercad tede var.o kodu çıkarmaktan başka çare yok. yada "when initialize" kodu program başladığında anlamına gelir. bu kodu kullanarak başlangıçta değişkeni sıfırla başlatın birde reset butonu koyun butona basınca değişkeni sıfırlasın.
Ekran Alıntısı.JPG
 
Son düzenleme:
Siz değer değişkenin 20 ekleyip, gönderiyorsunuz ama değer değişkeninin değerini değiştirmeden yapıyorsunuz.
Yapmanız gereken deger değişkeninine 20 ekleyip, set etmek. Ardından deger değişkenini göndermek.
 
Siz değer değişkenin 20 ekleyip, gönderiyorsunuz ama değer değişkeninin değerini değiştirmeden yapıyorsunuz.
Yapmanız gereken deger değişkeninine 20 ekleyip, set etmek. Ardından deger değişkenini göndermek.
Buton tıklanıldığında
set deger deger+20
gönder deger olacak.

Teşekkürler hocam, gözümden kaçmış o nokta. Başka bir şey daha sorayım. veri gönderirken send 2 byte number blogu kullandım. 2 yerine 1 ya da 4 byte olmasının farkını nasıl açıklayabiliriz.
 
hata yok hocam aynı sorun tinkercad tede oluyor. app inventora eklediğiniz kodlar sürekli çalışır. siz değer değişkenini 0 yap kodu koyduğunuz için ve bu kod sürekli çalıştığı için değişken hep 0 değerini alıyor. dediğim gibi aynı sorun tinkercad tede var.o kodu çıkarmaktan başka çare yok. yada "when shaking" kodu program başladığında anlamına gelir. bu kodu kullanarak başlangıçta değişkeni sıfırla başlatın birde reset butonu koyun butona basınca değişkeni sıfırlasın.
Ekli dosyayı görüntüle 61522

sıfırlama butonu ekleyeyim hocam, haklısınız.
 
Birde karşı tarafta yani ardinoda okurken her loopta birer olmak üzere iki loopta okuyabilirsin. hata sıfır olur.
aşağıdaki kod benim 2 byte gönderimde hatasız çalışan read fonksiyonum. henüz 4 bytta gelen veriyi çözemedim. bu sadece 2 byte için

void bluetooth_data_read(){

int deger;

if(bluetooth.available()>0){
bluetooth_counter++;
bluetooth_temp[bluetooth_counter]=bluetooth.read();
//Serial.print(bluetooth_counter);
//Serial.print(": ");
//Serial.println(bluetooth_temp[bluetooth_counter]);

if(bluetooth_counter==2){

if(bluetooth_temp[2]>128){
//sayı negatif
deger=(( bluetooth_temp[2] * 255) + ( bluetooth_temp[1] + bluetooth_temp[2] ))-65536;
bluetooth_incoming_data=deger;
}
else{
//sayı pozitif
deger=( bluetooth_temp[2] * 255) + ( bluetooth_temp[1] + bluetooth_temp[2] );
bluetooth_incoming_data=deger;
}

//Serial.print("Gelen veri: "); Serial.println(deger); Serial.println("----------------");
bluetooth_data_flow=true;

bluetooth_counter=0;

}

}
else { bluetooth_data_flow=false; }



}
 
Geri
Üst