2016-04-05 16 views
0

処理からarduinoに文字列を送信したいと思います。しかし、Arduinoのは、処理コードは下記を参照してください...シリアルからデータを受信しない:arduinoはシリアルデータを受信しません

import processing.serial.*; 
Serial myPort; 

void setup(){ 
    String portName = Serial.list()[2]; 
    myPort = new Serial(this, portName, 9600); 
} 

void draw(){ 

    myPort.write(parseRed + " | " + parseGreen + " | " + parseBlue); 

} 

は、ここに私のArduinoのコードを参照してください。

String serialData; 

String serialDataRed; 
String serialDataGreen; 
String serialDataBlue; 

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

} 

void loop(){ 

    if (Serial.available()) { 
     serialData = Serial.readString(); 

     serialDataRed = serialData.substring(0, 5); 
     serialDataGreen = serialData.substring(9, 16); 
     serialDataBlue = serialData.substring(20, 26); 
    } 

} 

私はこのスクリプトを実行すると、何も」arduinoのdoesnの起こりません任意のデータを受け取ることを参照してください...誰かが私が間違ってやっていることを教えてもいいですか?

+0

'parseRed'と' parseGreen'は何ですか?と 'parseBlue'?彼らはどこに定義され、その価値は何ですか? Arduinoの 'loop()'関数が呼び出されますか? if文に入りますか?あなたが[mcve]を投稿し、あなたがすでに行ったデバッグのステップを教えれば、あなたはもっと良い運があるでしょう。 –

+0

parseRed、parseGreen、parseBlueは文字列です。彼らは次のようになります: "minRed"または "neuGreen"または "maxBlue"など。はい、loop()関数は処理中のdraw()関数と同じであるため呼び出されます。 – FutureCake

+0

しかし、それが実際に呼び出されていることをどのように知っていますか?そのようなことを保証するためにデバッグを行ったことがありますか?コードの実際の実行が予想と異なる特定の場所に問題を絞り込む必要があります。あなたが実際に実行しているコードを表示する[mcve]を投稿しない限り、私たちは本当に助けてはいけません。 –

答えて

0

はよく私は私のエラーを検出しました:ちょっとD 愚かな過ち生地...

String portName = Serial.list()[2]; 

は次のようになります。

String portName = Serial.list()[3]; 

私のArduinoは、その後、前に別のUSBポートに接続されたため。 .. ですから、レッスンは正しいポートを使用しているかどうかをチェックしてください。 ケービンに助けていただきありがとうございます:)

関連する問題