通过蓝牙Arduino

时间:2017-09-29 16:36:40

标签: android terminal bluetooth arduino

我是Arduino的新手,我一直致力于解决困扰我几天的问题。

我有一个Arduino Uno和一个HC-05蓝牙模块。

基本上我想通过蓝牙一起发送String和Int数据。

CODE

#include <SoftwareSerial.h>        
SoftwareSerial BTSerial(10, 11); // RX | TX

void setup(void) {
  // Arduino setup
  Serial.begin(9600);
  // setting the baud rate of bluetooth
  BTSerial.begin(38400); // HC-05 default speed in AT command more
}

void loop(void) {
  int num = 123;
  BTSerial.write("#"); // Works
  BTSerial.write(num); // works
  BTSerial.write(String(num) + "#");
  // Error: no matching function for call to 'SoftwareSerial::write(StringSumHelper&)'
}

结果字符串也应该包含#&#39;#&#39;最后的角色。

根据Arduino Website,它有2个功能。

 - Serial.write(val) 
 - Serial.write(str) 

任何帮助表示感谢。

谢谢。

2 个答案:

答案 0 :(得分:0)

write用于发送原始字节。您想要使用Serial.print。

答案 1 :(得分:0)

如果要将String从另一台设备发送到arduino,则代码应像这样:

#include <SoftwareSerial.h>
SoftwareSerial BT(3, 4); 
String bt = "";
void setup() {
  BT.begin(9600);
  Serial.begin(9600);

}
void loop() {
  if(BT.available()){
    bt = BT.readString();
  }
  Serial.println(bt);
  while(!BT.available());
}

上面的代码,等待您的蓝牙模块接收到任何数据并从中读取一个字符串,然后以串行方式将其打印出来。

要发送Int,您可以读取一个String并将其解析为Int。