我是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)
任何帮助表示感谢。
谢谢。
答案 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。