2016-07-17 29 views
0

我使用this library嘗試Arduino的烏諾+ HC-05。我認爲它沒有正常工作。這是該示例的「回聲」串行監視器的輸出:找不到HC-05的通信速度(findBaud)

findBaud 
Trying 4800... x 
Trying 9600... x 
Trying 19200... x 
Trying 38400... x 
Trying 57600... x 
Trying 115200... x 

No connection 
No Connection, waiting...OK 

無通信速度的作品,但我管理我的Android手機連接(W /藍牙終端)的HC-05,這是爲什麼你會在輸出結尾看到「OK」。但它無法從藍牙終端迴應我的輸入。

Arduino的代碼:

#include <Arduino.h> 
#include "HC05.h" 
#include <SoftwareSerial.h> 

HC05 btSerial = HC05(A2, A5, A3, A4); // cmd, state, rx, tx 

void setup() 
{ 
    DEBUG_BEGIN(57600); 
    btSerial.findBaud(); 
} 

void loop() 
{ 
    btSerial.println("Echo Server- type something"); 
    while (btSerial.connected()) 
    { 
    if (btSerial.available()) 
    { 
     btSerial.write(btSerial.read()); 
    } 
    } 
} 

我如何連接HC-05的Arduino:

我只要按照指令(5V和GND;國家,Rx和Tx到A5,A3和A4分別),但我沒有腳「CMD」,但我有針「CFG」,所以我認爲應該是cmd,然後將其連接到A2

回答

0

(我知道我應該發表意見,而不是一個書面方式回答,但我需要50的聲望)

同樣在這裏。

我試圖使用和不使用lib和不同的引腳。我也嘗試了一個arduino micro和uno。

總是一樣的:模塊的LED閃爍(當我通過RX/TX發送數據看起來像)但我不能有任何答案(當切換到命令模式時使用「$$$」而不使用AT命令與KEY針 - 我的模塊上它被命名爲EN,也許對使,我認爲這是相同的)


編輯:

我應該有RTFM。特別是this

這裏是我的發現:

  • 藍牙模塊被稱爲HC-05和整板我是ZS-040。
  • EN引腳用來關閉模塊,如果設置爲LOW
  • 小按鈕開關可以推到進入命令模式(I沒有KEY銷)
  • 速度是9600個波特通過默認情況下並保持不變時,進入命令行模式
  • 要調試連接,您可以使用Android的應用程序稱爲BlueSerial

爲了記錄在案,這裏是我的代碼:

#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"); 
    } 
}