2016-05-07 13 views
0

これはプログラムを開始するのに役立つ質問です。設定は次のとおりです。私はカーレースゲームからデータを抽出しています。このデータを使用して、Arduino Unoに接続されている2台のサーボモータを作動させたいと思います。一方のサーボはRPMで、他方のサーボはスピードを示します。Arduinoに2つの異なる情報を送信する

この情報は、PC上で実行されているプログラムによってシリアルポート経由でArduinoに送信されています。この2つの異なる情報を「分離する」方法についての洞察やヒントがあるかどうかを知りたいと思います。 Arduinoはそれらのそれぞれを認識し、正しいサーボモータで使用することができます。

これは、コードの特定のビットで私を助けることについてあまり問題ではない、私は一般的に異なるデータパケットを識別し、分離するために使用されるいくつかの方法を探しています。

ありがとうございます!

+0

シリアル化以外は? –

答えて

0

簡単な方法では、識別子バイトを使用できます。したがって、データフレームは常に最初に識別子バイトを持ちます。あなたはこのような列挙型で識別子を定義することができます。

enum DataIdentifier 
{ 
    Rpm, 
    Speed 
}; 

あなたのArduinoのコードは、このようなことができます:

if(Serial.available > 0) 
{ 
    byte Identifier = Serial.read(); 
    switch(Identifier) 
    { 
    case Rpm: 
     //Read X Bytes and use the RPM Servo 
     break; 
    case Speed: 
     //Read X Bytes and use the Speed Servo 
     break; 
    default: 
     break; 
    } 
} 

このソリューションは非常にモジュール化されています。このソウルシップを簡単に変更して展開することができます。

+0

そのチップをありがとう!私はこれがどのように働くか見てみる:) – Frazic

関連する問題