0

我一直在做一个项目,它需要有蓝牙。我选择了 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;
}

...添加的是不与蓝牙串行交互的部分代码。也许延迟和蓝牙不能很好地协同工作?

感谢帮助,谢谢

4

0 回答 0