2016-11-11 311 views
1

這是我在Stackoverflow上的第一篇文章,所以我希望你能回答我的問題。用Arduino Uno重置HC-06藍牙模塊?

我是Arduino的新手,我用下面的代碼意外地改變了我的HC-06藍牙模塊的波特率和名稱。

#include <SoftwareSerial.h> 

SoftwareSerial mySerial(3, 4); // RX, TX 

void setup() 
{ 
    //Serial.begin(9600); 
    //Serial.begin(57600); 
    Serial.begin(115200); 
    Serial.println("Goodnight moon!"); 

    mySerial.begin(9600); 
    //mySerial.begin(57600); 
    //mySerial.begin(115200); //if you change the baud and want to re-run this sketch, make sure this baud rate matches the new rate. 

    delay(1000); 
    mySerial.print("AT"); 
    delay(1000); 
    mySerial.print("AT+VERSION"); 
    delay(1000); 

    //mySerial.print("AT+PIN1234"); // Set pin to 1234 was 1342 
    //delay(1000); 

    //mySerial.print("AT+NAMEJY-MCU-HC06"); // Set the name to JY-MCU-HC06 
    //delay(1000); 

    //mySerial.print("AT+BAUD4"); // Set baudrate to 9600 
    //mySerial.print("AT+BAUD7"); // Set baudrate to 57600 
    mySerial.print("AT+BAUD8"); // Set baudrate to 115200 
    delay(1000); 
} 

void loop() // run over and over 
{ 
    if (mySerial.available()) 
    Serial.write(mySerial.read()); 
    if (Serial.available()) 
    mySerial.write(Serial.read()); 
} 

現在我無法恢復到默認設置(波特率9600和名稱HC-06),我不知道如何解決這個問題。

我試着輸入串行AT命令,但沒有得到任何迴應。我也確定HC-06模塊沒有與任何其他設備配對,但仍然沒有迴應。我也嘗試過不同的來源和終端除了Arduino的串口監視器,如:

http://www.hobbyist.co.nz/?q=bluetooth-module-device

http://42bots.com/tutorials/hc-06-bluetooth-module-datasheet-and-configuration-with-arduino/

更多...

所以我的問題如下:我怎麼到恢復我對HC-06藍牙模塊所做的更改,最好回到波特率9600?

預先感謝您。

-F

+0

也許你可以使用終端程序,並嘗試發送各種波特率的AT命令,直到它響應。然後通過終端程序回到9600。 – Lundin

+0

我按照你的建議使用了Tera Term,不幸的是沒有響應.. –

+0

發送'mySerial.print(「AT + BAUD8」);'命令後,你的Tera Term切換到115200波特嗎?你看過「OK115200」嗎? –

回答

0

好吧,我感到非常愚蠢......

顯然我設置波特率爲57600,而不是115200 ...所以現在我可以通過57600波特率更改波特率和名稱。

那麼,我不會忘記它現在是如何工作的:P。謝謝大家的時間和耐心。

-F

0

你能嘗試使用硬件序列代替軟件序列,看看是否可行?

注:在我使用HC藍牙模塊和arduino硬件序列的經驗中,爲了得到正確的草圖上傳,您必須從Arduino中拔下HC-06的電源或tx/rx,否則它會干擾。

此外,你可能想註釋掉

mySerial.print("AT+BAUD8"); // Set baudrate to 115200 

並取消

//mySerial.print("AT+BAUD4"); // Set baudrate to 9600 

當你發送的命令,你應該得到的東西是這樣的:

來自主機控制器:

AT + BAUD3

響應

OK4800

Secondary Datasheet For Reference

在數據表上有11的復位銷。(第2頁圖)

此外,還有一個復位命令:

AT + RESET重置設備

+0

我不知道如何在Arduino上使用Hardware Serial,它的工作方式與Software Serial相同嗎?例如'#include HardwareSerial mySerial(3,4);'? 另外,當我輸入任何AT命令行時,我不會收到任何迴應,您認爲引腳應該連接到3,4引腳(如草圖)還是rx,tx引腳? –

+0

我也不知道如何使用重置引腳,我只是連接一些東西到它足夠長的時間,它應該自動重置? –