我的Arduino蓝牙控制器车出现问题 我只得到反向问号。
我使用的是HC-05蓝牙模块。引脚连接如下:
Ardunio代码:
#include <AFMotor.h>
AF_DCMotor right_motor(3, MOTOR12_8KHZ);
AF_DCMotor left_motor(4, MOTOR12_8KHZ);
String readString;
void setup() {
Serial.begin(9600);
right_motor.setSpeed(250);
left_motor.setSpeed(250);
}
void loop() {
while(Serial.available()){
delay(50);
char c=Serial.read();
readString+=c;
}
if(readString.length()>0){
Serial.println(readString);
if (readString =="FORWARD"){
right_motor.run (FORWARD);
left_motor.run (FORWARD);
delay(500);
}
if (readString =="BACKWARD"){
right_motor.run (BACKWARD);
left_motor.run (BACKWARD);
delay(500);
}
if (readString =="LEFT"){
right_motor.run (FORWARD);
left_motor.run (BACKWARD);
delay(500);
}
if (readString =="RIGHT"){
right_motor.run (BACKWARD);
left_motor.run (FORWARD);
delay(500);
}
if (readString =="STOP"){
right_motor.run (RELEASE);
left_motor.run (RELEASE);
delay(500);
}
readString="";
}
}
串口监视器:
我在代码中尝试了很多类型的更改,但它们无法正常工作。
答案 0 :(得分:0)
蓝牙模块和Arduino串行端口之间的波特率必须相同。您可以通过输入以下AT命令来检查蓝牙模块的波特率:
app.UseWebSockets();
app.UseSignalR(routes => { routes.MapHub<FingerprintHub>("/Hub/FingerprintHub"); });
,也可以使用以下AT命令进行更改:AT+UART?
。
此外,您不能使用AT+UART=desired baud rate, stop bit, parity bit,\r\n
然后将输出与Serial.read()
进行比较!而是使用"STRING"
。
答案 1 :(得分:0)
根据大多数文档,HC-05的默认波特率是9600,而AT命令模式的默认波特率是38400。试试:
Serial.begin(57600);
我有六个HC-05,它们全部出厂时默认设置为57600波特。
(我之所以发布此答案,部分原因是我花了数小时才重新发现它。)