我在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并让它们被阅读。任何建议都表示赞赏。
答案 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);