2016-10-04 12 views
0

私はロボットの位置をソフトウェアシリアルライブラリを使用してArduinoを使用してワイヤレスモジュールで送信しようとしています。私はそれが1バイトだけ時間で送ることができることがわかった。私は255以上の数字を送ることはできません。私は40000まで浮標を送る必要があります。私はそれをどのようにすることができますか?ここでArduinoのシリアルソフトウェアで3つの浮動小数点変数を送信

は私の送信機の一例である:

#include <SoftwareSerial.h> 
SoftwareSerial mySerial(10, 11); // RX, TX 

void setup() 
{ 
// Open serial communications and wait for port to open: 
Serial.begin(9600); 
mySerial.begin(9600); 
} 

void loop() // run over and over  
{  
    float i=40000; 
mySerial.write(i); 
    //Serial.println(i);}  
} 

私のレシーバ

#include <SoftwareSerial.h> 
SoftwareSerial mySerial(10,11); // RX, TX 
int i=0; 
void setup() 
{ 
// Open serial communications and wait for port to open: 
Serial.begin(9600); 
mySerial.begin(9600);  
} 

void loop() { 
if(mySerial.available()){ 
    i=mySerial.read(); 
Serial.println(i);  
} 
} 

答えて

0

あなたは空白区切りで、プレーンテキストでそれを送信するためにSerial.println(floatVal);を使用してSerial.parseFloat()の方法でそれを受信する必要が。

write方法は、あなたが本当に、そのバイナリ形式で山車を送信したい場合は、バッファとしてそれを渡す必要が

(単一の文字、C-文字列またはいくつかのバッファ)生データを送信するために良いです:Serial.write((uint8_t*)&floatVal, sizeof(intVal));。受信側ではフロート全体を読む必要があります。 read()メソッドは、1つの文字のみを読み取ります。

関連する問題