我希望将HC-05蓝牙模块连接到ESP8266,并在if/else语句中使用从蓝牙模块接收的输入。
这样做的时候,我可以从蓝牙接收数据到串口,但是我不能使用Arduino IDE串口打印字符。如果我.begin蓝牙串行连接,为什么println不再适用于串行?
已尝试不同的波特率和不同的引脚
#include <SoftwareSerial.h>
SoftwareSerial BTserial(1, 3); // RX | TX
String reading;
void setup()
{
// Arduino IDE serial monitor
Serial.begin(9600);
Serial.println("hoihoi");
// HC-05 default serial speed for AT mode is 38400
BTserial.begin(9600);
// Wait for hardware to initialize
delay(1000);
// Print debug string
}
void loop()
{
Serial.println("hoi");
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTserial.available())
{
String reading = (String)BTserial.read();
Serial.println(reading);
//input from mobile is 1 AKA 10% PWM
if(reading == "1"){
Serial.println("Input from Bluetooth is 1");
}
//input from mobile is 2 AKA 100% PWM
else if(reading == "2") {
Serial.println("Input from Bluetooth is 2");
}
//input from mobile is 3 AKA 0% PWM
else if(reading == "3") {
Serial.println("Input from Bluetooth is 3");
}
}
}我想在if/else语句中使用从蓝牙模块接收的数据,并将其输出到Serial中。
但是,目前我无法将任何内容打印到Serial。当我删除“BTserial.begin(9600);”时,我可以输出到串行。
发布于 2019-08-21 23:18:12
几年前我也遇到过同样的问题。你差一点就成功了!但是引脚1仍然被'SoftwareSerial BTserial(1,3)‘占用
默认情况下,Arduino UNO使用引脚0和1作为RX、TX与串行监视器通信。这意味着如果您将某些东西连接到这些针脚,您将无法在串行监视器上打印。
只需改变你的密码就能解决你的问题-> 'SoftwareSerial BTserial(2,3)‘
https://stackoverflow.com/questions/57525570
复制相似问题