我正在尝试使用 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