2016-07-18 40 views
0

私はMatlabからArduinoにデータを送信しようとしていますが、私が期待しているものが得られません。二重変数で '5'を送信すると、 Arduinoターミナルでe。Matlab - > Arduinoシリアル通信

Arduinoのコードは次のとおりです。

void setup() 
{ 
    Serial.begin(9600); 
} 

void loop() 
    { 
     if (Serial.available()) 
     { 
      Serial.write(Serial.read()); 
     } 
} 

とMATLABコードは次のとおりです。

data=5 
PS=serial('COM11','BaudRate',9600); 

fopen(PS); 

fwrite(PS,data) 

fclose(PS); 
delete(PS); 
clear PS; 
+0

があなたの代わりに(http://de.mathworks.com/help/matlab/ref/serial.fprintf.html)[ 'fprintf']を使用してみましたなります?あなたの '5 'は文字列ではなくバイナリデータとして送られます。[' fwrite'](http://de.mathworks.com/help/matlab/ref/serial.fwrite.html)を参照してください。私はArduinoが弦楽器で動作すると思いますか? 'fwrite'は' 'precision''を設定することを許可します。これはArduinoコードでバイナリとして使用すると助けになるかもしれません。 –

答えて

0
 Serial.write(Serial.read()); 

これは、あなたが受け取る正確に何を送り返し、それは本当に便利ではありませんあなたが受け取ったものを見つけてください。

  • 他の場所に送信する可能性はありますか?
    Serial1、Softserial、lcd?
  • Serial.read()あなたは
  • 得たもののコード...そしてあなたが
  • を受信したバイト数を確認するためにSerial.println(Serial.read())
    を使用する場合がありますので、int型を返します代わりに、バイナリの
  • reveiving /送信テキストは、時には命に簡単
関連する問題