1

Bluetooth経由でAndroidフォンとarduinoでサーボを制御しようとしていますが、arduinoのデータはcharとして受信され、arduinoはすべてのデータがいつ受信されたかを認識せず、サーボが正しく動作しません. arduino のコードは次のとおりです: #include

Servo myservo;

char val; // variable to receive data from the serial port
int ledpin = 13; // LED connected to pin 48 (on-board LED)

void setup() {

  pinMode(ledpin, OUTPUT);  // pin 48 (on-board LED) as OUTPUT
  Serial.begin(9600);       // start serial communication at 9600bps
    myservo.attach(9);  
}

void loop() {

  if( Serial.available() )       // if data is available to read
  {
    val = Serial.read();         // read it and store it in 'val'
  }
   if( val - 0 >= 0 && val - 0 <= 180){
 }
   // Serial.print("Recibido");

  delay(100);                    // wait 100ms for next reading
}    

サーボを制御する「val」から正しい値を取得するにはどうすればよいですか?

4

1 に答える 1

0

必要に応じて、複数の文字を送信できます。新しい各文字を配列に単純に格納し、Android プログラムをプログラムして、val 読み取りの終了を示す特定のバイトを送信します。

シリアルからの読み取りを実行するたびにこの「終了」バイトをチェックすると、この文字が格納されるか、以前に格納された文字を整数または必要なデータ型に変換するかがわかります。

その配列を単純に変換するだけで、正しい値がわかります。

于 2013-09-26T21:47:56.357 に答える