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

Katılım
21 Nis 2017
Mesajlar
88
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
129,827
Mesajlar
930,545
Kullanıcılar
452,650
Son üye
HiAxiSeytan

Yeni konular

Çevrimiçi üyeler

Geri
Üst