我无法通过与我的mac搭配的蓝牙蜜蜂获得我的arduino fio。我让我的应用程序使用不同的板(arduino uno)和USB连接。我上传到我的arduino fio的代码如下:
#include <SoftwareSerial.h>
SoftwareSerial softSerial(2, 3); // RX, TX
void setup() {
// bluetooth bee setup
softSerial.print("\r\n+STWMOD=0\r\n"); // set to slave
delay(1000);
softSerial.print("\r\n+STNA=MYAPP\r\n"); // set name
delay(1000);
// Serial.print("\r\n+STAUTO=1\r\n"); // permit auto-connect of paired devices
softSerial.print("\r\n+STOAUT=1\r\n");
delay(1000);
//Serial.print("\r\n +STPIN=0000\r\n"); // set PIN
//delay(1000);
softSerial.print("\r\n+STBD=9600\r\n"); // set baud
delay(2000); // required
// initiate BTBee connection
softSerial.print("\r\n+INQ=1\r\n");
delay(20000); // wait for pairing
// Start the software serial.
softSerial.begin(9600);
// Start the hardware serial.
Serial.begin(9600);
}
我认为针脚是正确的 - 2 and 3 seem to be the pins that connect to the bluetooth bee。我已经连续两天谷歌搜索,人们似乎没有配对问题。我做错了什么?
谢谢,
答案 0 :(得分:0)
好的 - 这让我花了将近三天的Google-fu,我偶然发现了this page。显然,那个人在找到解决方案时遇到了很多麻烦,所以希望在StackOverflow上发布解决方案将有助于未来的询问者。
真的,有两件事是必要的。首先,无论出于何种原因,我不知道为什么,你不担心“软件序列”。只需解决“串行”问题。其次,如果你没有串口在38400的波特率它将无法工作。我实际上使用“软件串口”与另一台设备通话,而波特率为9600,但对于蓝牙串口,你想要它在38400。
如果您按如下方式定义“设置”,则BluetoothBee应闪烁红色和绿色,并且配对(mac与其无关):
long DATARATE = 38400; // default data rate for BT Bee
char inChar = 0;
int LED = 13; // Pin 13 is connected to a LED on many Arduinos
void setup() {
Serial.begin(DATARATE);
// bluetooth bee setup
Serial.print("\r\n+STWMOD=0\r\n"); // set to slave
delay(1000);
Serial.print("\r\n+STNA=myDeviceName\r\n"); // set the device name
delay(1000);
Serial.print("\r\n+STAUTO=0\r\n"); // don't permit auto-connect
delay(1000);
Serial.print("\r\n+STOAUT=1\r\n"); // existing default
delay(1000);
Serial.print("\r\n +STPIN=0000\r\n"); // existing default
delay(2000); // required
// initiate BTBee connection
Serial.print("\r\n+INQ=1\r\n");
delay(2000); // wait for pairing
pinMode(LED, OUTPUT);
}
然后,在配对后你应该看到'tools - &gt;下的另一个串口。您的Arduino IDE中的串行端口。如果您选择并按如下方式定义“循环”功能,您应该能够发送这些命令并获得验证,实际上是与蓝牙蜜蜂交谈:
void loop() {
// test app:
// wait for character,
// a returns message, h=led on, l=led off
if (Serial.available()) {
inChar = Serial.read();
if (inChar == 'a') {
Serial.print("connected"); // test return connection
}
if (inChar == 'h') {
digitalWrite(LED, HIGH); // on
}
if (inChar == 'l') {
digitalWrite(LED, LOW); // off
}
}
}