0

我尝试使用 HC-05 蓝牙模块在我的 android 手机和我的 arduino 之间进行简单的通信。

虽然我的模块可以工作并且我也可以在手机上发送和接收数据,但我的 btData 变量的数据似乎在收到后立即丢失了。在我的 android 应用程序上,我得到输入数据输出,就像写在我的代码中一样,然后立即是一个空的输出/行。

将“1”/“off”写入我的控制台不会触发我的 if(btData == "1")... 部分代码。

我附上了我的代码,以及 android 终端和我的 arduino HC-05 连接。

安卓终端

带接线的arduino

希望有人能够提供帮助,因为我找不到任何错误。

#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11

SoftwareSerial btSerial(rxPin, txPin);
String btData;

void setup() {
  btSerial.begin(9600);
  btSerial.println("bluetooth available");
}

void loop() {
  if (btSerial.available()) {
    btData = btSerial.readString();
    btSerial.println(btData);
    if (btData == "1") {
      btSerial.println("LED on Pin 13 is on");
    }
    if (btData == "off") {
      btSerial.println("LED on Pin 13 is off");
    }
  }
  delay(100);
}
4

1 回答 1

0

是否正在发送的数据在字符串末尾有一个换行符?

这就是为什么您在发送的数据之后看到空行的原因。

一个可能的解决方案可能是:

void loop() {
  if (btSerial.available()) {
    btData = btSerial.readString();
    btData.trim()
    btSerial.println(btData);
    if (btData == "1") {
      btSerial.println("LED on Pin 13 is on");
    }
    if (btData == "off") {
      btSerial.println("LED on Pin 13 is off");
    }
  }
  delay(100);
}
于 2021-02-13T17:53:05.720 回答