蓝牙伴侣黄金连接到Arduino Mega没有从Tera Term接收数据

时间:2015-01-25 00:22:52

标签: bluetooth arduino

我在Tera Term和Arduino Mega之间通过蓝牙连接进行通信时遇到问题。我的目标是能够设置Mega,以便以后可以用来与C ++应用程序交换文本命令。使用我在本网站上找到的代码,我可以使用Arduino IDE串行监视器将文本发送到Tera Term终端,但我无法将文本从Tera Term终端发送到Arduino。它永远不会识别终端发送的文本。我使用的蓝牙模块是SparkFun的蓝牙伴侣金牌。代码的目的是检测传入的字符然后激活LED。我的代码如下所示:

#include <SoftwareSerial.h>

int bluetoothTx = 15;
int bluetoothRx = 14;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup() {
  pinMode(13, OUTPUT);
  //Setup usb serial connection to computer
  Serial.begin(9600);

  //Setup Bluetooth serial connection to android
  bluetooth.begin(115200);
  bluetooth.print("$$$");
  delay(100);
  bluetooth.println("U,9600,N");
  bluetooth.begin(9600);
}

void loop() {
  //Read from bluetooth and write to usb serial
  if(bluetooth.available()) {
  char toSend = (char)bluetooth.read();
  Serial.print(toSend);
  flashLED();
  }

  //Read from usb serial to bluetooth
  if(Serial.available()) {
  char toSend = (char)Serial.read();
  bluetooth.print(toSend);
  flashLED();
  }
}

void flashLED() {
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
}

Tera Term似乎唯一有用的功能是使用“$$$”进入命令模式。这样做,我可以运行诸如“D”之类的命令。我不知道为什么我不能将Tera Term中的字符发送给Arduino并让它们被阅读。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

我刚刚构建了相同的东西,在配置模块之前我不得不添加500毫秒的延迟。我也遇到了接收数据的问题,因为我使用了不支持PCINT中断的引脚。

delay(500);
bluetooth.begin(115200); 
bluetooth.print("$"); 
bluetooth.print("$");
bluetooth.print("$"); 
delay(100);  
bluetooth.println("U,9600,N");  
bluetooth.begin(9600);