我一直在做一个项目,它需要有蓝牙。我选择了 HC-05 并将它连接到 arduino 的数字端口 2 和 3 并用于SoftwareSerial
处理它。
问题是,Bluetooth.available()
总是错误的,即使我尝试向它发送任何类型的数据。
这是我的代码:
...
#include <SoftwareSerial.h>
...
// Bluetooth Handler
SoftwareSerial Bluetooth(2, 3);
...
void setup() {
// Internal
Serial.begin(9600);
...
// Bluetooth
Bluetooth.begin(9600);
...
}
void loop() {
...
// Bluetooth
listenBluetooth();
...
delay(10);
...
delay(60000);
...
listenBluetooth();
...
listenBluetooth();
delay(5000);
}
void listenBluetooth() {
if(Bluetooth.available()) {
Serial.println("Listening for bluetooth");
String receivedText = Bluetooth.readString();
String parsedText = parseReceivedText(receivedText);
Serial.print("Bluetooth text: ");
Serial.print(parsedText);
Serial.println();
if(receivedText == "current_timestamp") {
Bluetooth.write(millis());
} else if (receivedText == "get_history") {
Bluetooth.write("History");
} else {
Bluetooth.write("Unknown Command");
}
}
}
String parseReceivedText(String text) {
text.replace("\n", "");
text.replace(" ", "");
text.replace("\r", "");
return text;
}
...
添加的是不与蓝牙串行交互的部分代码。也许延迟和蓝牙不能很好地协同工作?
感谢帮助,谢谢