Arduino ve C# integer veya float veri aktarımı

Katılım
21 Nis 2017
Mesajlar
83
Puanları
1
Yaş
30
Arkadaşlar herkese merhaba

Fazla uzatmadan soruma geçeyim.
C# windows form ile oluşturduğum ara yüzdeki integer veya float tipindeki sayıları arduinoya göndermek istiyorum. Örnek;
Kullanıcı değer girecek
Değer1=109,5
Değer2=150
Değer3=112,4
Değer4=130,3
Butona basınca bu değerleri arduinoda oluşturduğum değişkenlere atayamak istiyorum.
İnternette bununla ilgili video çekenler var ama sadece 1 veya 0 gönderip ledi yakıp söndürüyorlar. Uzun zamandan beri bunu halledemedim konu hakkında bilgisi olan varsa yardımlarını rica ederim.Teşekkürler

IMG_0812.jpeg
 
Eğer hız ve data boyutu senin için önemli değilse Arduino Serial kitaplığı bu iş için iki adet özel fonksiyon barındır. Gönderdiğin karakterlerin içinden integer ve float tipini oluışturacak karakterleri tanıyarak atayacağın değişken içerisine kopyalar. Önemli olan nokta şudur ki: bilgisayardaki integer veya float türü değişkenleri string tipine dönüştürüp seri porttan yollamalısın.

Ben sana sadece Arduino kısmını yazıyorum C# kısmını sanıyorum kendin halledebilirisin. Aşağıdaki örnekleri seri monitörden değer göndererek deneyebilirsin.

Serial.parseInt():

C++:
int val;
void setup() {
Serial.begin(115200);
}
void loop() {
while (Serial.available() == 0) {
// Wait for user input
}
val = Serial.parseInt();
Serial.print("You entered: ");
Serial.println(val);
}

Serial.parseFloat():

C++:
void setup() {
  Serial.begin(115200);
}

void loop() {
  if (Serial.available() > 0) {
    float myFloat = Serial.parseFloat(SKIP_ALL, '\n');

    // prints the received float number
    Serial.print("I received: ");
    Serial.println(myFloat);
  }
}
 
Eğer hız ve data boyutu senin için önemli değilse Arduino Serial kitaplığı bu iş için iki adet özel fonksiyon barındır. Gönderdiğin karakterlerin içinden integer ve float tipini oluışturacak karakterleri tanıyarak atayacağın değişken içerisine kopyalar. Önemli olan nokta şudur ki: bilgisayardaki integer veya float türü değişkenleri string tipine dönüştürüp seri porttan yollamalısın.

Ben sana sadece Arduino kısmını yazıyorum C# kısmını sanıyorum kendin halledebilirisin. Aşağıdaki örnekleri seri monitörden değer göndererek deneyebilirsin.

Serial.parseInt():

C++:
int val;
void setup() {
Serial.begin(115200);
}
void loop() {
while (Serial.available() == 0) {
// Wait for user input
}
val = Serial.parseInt();
Serial.print("You entered: ");
Serial.println(val);
}

Serial.parseFloat():

C++:
void setup() {
  Serial.begin(115200);
}

void loop() {
  if (Serial.available() > 0) {
    float myFloat = Serial.parseFloat(SKIP_ALL, '\n');

    // prints the received float number
    Serial.print("I received: ");
    Serial.println(myFloat);
  }
}
Çok teşekkür ederim. Hemen deneyeceğim saygılarımla.
 

Forum istatistikleri

Konular
127,959
Mesajlar
913,914
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst