找不到HC-05通讯速度(findBaud)

时间:2016-07-17 17:30:13

标签: bluetooth arduino-uno

我正在使用this library尝试Arduino Uno + HC-05。我不认为它运作正常。这是示例“echo”的串行监视器输出:

library(dplyr)

通讯速度都没有,但我设法将我的Android手机(带蓝牙终端)连接到HC-05,这就是输出结束时看到“OK”的原因。但它无法回应我从蓝牙终端的输入。

Arduino代码:

mydf %>% select(contains("br"))

#br.Id br.day br.year branch br.location
#1  1992.000     23    1992      1      160170
#2  1992.000     23    1992      2      160170
#3  1992.000     23    1992      3      160170
#4  1992.000     23    1992      4      160170
#5  1992.001     23    1992      5      160170
#6  1992.001     23    1992      6      160170
#7  1992.001     23    1992      7      160170
#8  1992.001     23    1992      8      160170
#9  1992.001     23    1992      9      160170
#10 1992.001     23    1992     10      160170

我如何将HC-05连接到Arduino:

我只是遵循指令(5V和GND;状态,Rx和Tx分别为A5,A3和A4),除了我没有引脚“cmd”,但我确实有“CFG”引脚,所以我只是假设应该是cmd并将其连接到A2

1 个答案:

答案 0 :(得分:0)

(我知道我应该发表评论,而不是写一个答案,但我需要50个声誉)

同样在这里。

我尝试使用和不使用lib和不同的引脚。我也试过arduino micro和uno。

总是一样的:模块的LED闪烁(当我通过RX / TX发送数据时),但我无法回答(当用" $切换到命令模式时都没有) $$"并且没有带有KEY引脚的AT命令 - 在我的模块上它被命名为EN,可能用于启用,我认为它是相同的)

编辑:

我应该有RTFM。特别是this

以下是我的发现:

  • 蓝牙模块称为HC-05,我的整板是ZS-040。
  • EN引脚用于关闭模块,如果设置为LOW
  • 可以按下小按钮开关进入命令模式(我没有KEY针)
  • 默认情况下,速度为9600波特,进入命令模式时保持不变
  • 要调试连接,您可以使用名为BlueSerial的Android应用

记录中,这是我的代码:

#include <SoftwareSerial.h>

#define HC05_STATE 5
#define HC05_RXD_ARDUINO_TXD 4
#define HC05_TXD_ARDUINO_RXD 3
#define HC05_EN 2

SoftwareSerial BTSerial(HC05_TXD_ARDUINO_RXD, HC05_RXD_ARDUINO_TXD); // RX | TX

void setup(void)
{
    pinMode(HC05_EN, OUTPUT);
    digitalWrite(HC05_EN, HIGH);  // just to be sure to enable the module, if not plugged it still works

    Serial.begin(9600);
    BTSerial.begin(9600);  // default speed

    Serial.println("Ready");
}

void loop(void)
{
    if (BTSerial.available())
    {
        Serial.print("< ");
        while (BTSerial.available())
            Serial.write(BTSerial.read());
        Serial.print("\n");
    }

    if (Serial.available())
    {
        Serial.print("> ");
        while (Serial.available())
        {
            char c = Serial.read();
            BTSerial.write(c);
            Serial.write(c);
        }
        Serial.print("\n");
    }
}