我是 Arduino 新手,我一直在解决困扰我几天的问题。
我有一个 Arduino Uno 和一个 HC-05 蓝牙模块。
基本上我想通过蓝牙一起发送String和Int数据。
代码
#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&)'
}
结果字符串最后应该有'#'字符。
根据Arduino网站,它有2个功能。
- Serial.write(val)
- Serial.write(str)
任何帮助表示赞赏。
谢谢你。
write 用于发送原始字节。您想改用 Serial.print 。
如果你想从另一个设备发送字符串到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。