0

我正在尝试使用 Processing for Android 在 Android 和 Arduino 之间进行双向蓝牙通信。我使用serial.begin(9600)成功地将数据从Android传输到Arduino。通过使用 Arduino 程序中的 SoftwareSerial 和 bluetooth.begin(9600) 代替 serial.begin(9600),我成功地将数据从 Arduino 传输到 Android。

但是,当尝试使用 bluetooth.x 命令将数据从 Android 传输到 Arduino 时,它不起作用。这是Arduino代码:

  if (bluetooth.available()) // Wait until a character is received
  {
    char val = (char)bluetooth.read();
    //Serial.println(val);

    switch(val) // Perform an action depending on the command
    {
      case 'w'://turn the light on when a 'w' is received
      on();
      break;

      case 'q'://turn the light off when a 'q' is received
      off();
      break;

      //default://otherwise remain in the previous state
      //idle();
      break;
    }
  }

on() 和 off() 函数打开和关闭 Arduino 上的 LED。如前所述,这在我使用 serial.x 命令而不是 bluetooth.x 命令时有效。另外,我正在使用 Ketai for Processing for Android。我正在使用处理 2.0.1、Arduino 1.0.5、Android 2.3.6。

这是相关的开始代码:

#include <SoftwareSerial.h>
SoftwareSerial bluetooth(0,1);  //TX 0, RX 1
4

1 回答 1

2

多一点代码将不胜感激......

你有没有包括类似的东西?

#include <SoftwareSerial.h>

int bluetoothTx = 2;
int bluetoothRx = 3;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

编辑:

这与我使用的类似。您首先上传没有连接蓝牙的代码,然后连接蓝牙。然后你可以简单地使用Serial.doSomething(),因为你使用的是相同的引脚,你不需要#include <SoftwareSerial.h>. 但是您需要确保波特率相同。

您可以尝试此代码以确保其正常工作:

void setup(){

    Serial.begin(9600); // or wathever your bluetooth module baudrate is

}

void loop(){

    Serial.println("Hello World!"); // to make sure it works.
    delay(500);

}

您还应该确保您的 Arduino 通过蓝牙连接到计算机。

于 2013-10-07T07:30:51.893 回答