2017-02-12 11 views
-1

現在、Arduinoからテキストファイル(data.txt)に値(Yes!)を取得しようとしています。処理を使用してArduinoからテキストファイルにデータを書き込む

問題は、データがArduinoのシリアルから読み取られていないことです。 processingのプロンプトに値を簡単に印刷しようとしたとき、私は空の手を出しました。以下は

は以下のArduino

//Just a basic program to write to the Serial the word/phrase; `Yes!`. 

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

void loop() 
{ 
    Serial.println("Yes!"); 
} 

のための私のコードですprocessingのための私のコードされた:はい、このコードはthisstackoverflow質問から発見された

import processing.serial.*; 
Serial mySerial; 
PrintWriter output; 
void setup() { 
    mySerial = new Serial(this, Serial.list()[0], 9600); 
    output = createWriter("data.txt"); 
} 
void draw() { 
    if (mySerial.available() > 0) { 
     String value = mySerial.readString(); 
     if (value != null) { 
       output.println(value); 
     } 
    } 
} 

void keyPressed() { 
    output.flush(); // Writes the remaining data to the file 
    output.close(); // Finishes the file 
    exit(); // Stops the program 
} 

ご協力いただければ幸いです!

+0

デバッグを行う必要があります。シリアル接続が1つしかありませんか? 'Serial.list()'から返されるものは何ですか?どの 'if'文も入力されていませんか?見つけ出すには、printステートメントを使用します。ファイルではなくコンソールに印刷すればどうなりますか? –

+0

コンソールに印刷するときに何も起こらず、値を正しく読み取れません。複数のシリアル接続があるとどうなりますか? – EDCisBack

+0

'Serial.list()'によって返される配列の長さはどれくらいですか?どの 'if'文も入力されていませんか? –

答えて

0

は、この行をチェックアウト:

mySerial = new Serial(this, Serial.list()[0], 9600); 

この行は、あなたが唯一のシリアル接続を前提としています。シリアル接続が複数ある場合は、この行で使用されているハードコードされたインデックスを変更する必要があります。

+0

ちょうどハードコーディングされた0を1に変更しなければなりません。COMポートを探している場合は、コンソールに値を印刷し続けるか、必要なCOMを単純にハードコードしてください。 – EDCisBack

関連する問題