▲ HC-0x 藍芽模組
如果你有在使用 HC-0x 藍芽模組,在某些時候,你可能會需要調整藍芽模組的設定,比如改變模組的 baud rate,這篇將教你怎麼做。
你需要一個 USB to TTL 的轉換器,比如底下的任何一塊板子:
▲ 左圖:CP2102 的晶片;右圖:PL2303 的晶片,購買資訊可見文後的參考資料
全新的 HC-0x 藍芽模組,預設的設定通常是這樣:
Baud rate: 9600
Name: linvor
Pairing code: 1234
準備工作
1) 首先,把 USB to TTL 跟藍芽模組連接起來:
連接的時候有兩點要注意:第一是電源千萬不可接錯,不然可能會把藍芽模組燒壞,第二是 USB to TTL 的 RXD 要接藍芽模組的 TXD,而 USB to TTL 的 TXD 要接藍芽模組的 RXD。連接方法可參考下表:
USB to TTL 轉換器 | 藍芽模組 | 備註 |
5V | VCC | |
GND | GND | |
TXD | RXD | |
RXD | TXD |
2) 把 USB to TTL 轉換器接到 PC 上,這時候藍芽模組上的 LED 會一直閃爍:
3) 打開 Arduino IDE,選擇藍芽模組所連接的 COM port
我 USB to TTL 轉換器是接在 COM20:
所以我選擇 COM20:
4) 打開 Serial Monitor,確定下方用的是 "No line ending":
現在可以開始測試藍芽模組的通信,輸入 AT 指令(指令是全部大寫的),然後按下 Send 按鈕或 Enter 鍵,藍芽模組應該會回應 OK:
修改 Baud rate
底下示範如何把 baud rate 修改為 57600 bps:
輸入指令:
AT+BAUD7
藍芽模組應該會回應:
OK57600
如下圖所示:
由於藍芽模組 baud rate 已經改成 57600,你必須把 Serial Monitor 的 baud rate 改成 57600 才能再跟藍芽模組對話。
修改 baud rate 的指令格式為:
指令:AT+BAUD<p>
回應:OK<r>
baud rate 對應表如下:
<p> <r> 備註 1 1200 設定為 1200 bps 2 2400 設定為 2400 bps 3 4800 設定為 4800 bps 4 9600 設定為 9600 bps 5 19200 設定為 19200 bps 6 38400 設定為 38400 bps 7 57600 設定為 57600 bps 8 115200 設定為 115200 bps 9 230400 設定為 230400 bps A 460800 設定為 460800 bps B 921600 設定為 921600 bps C 1382400 設定為 1382400 bps
注意! 一般 PC 的 COM Port 不支援超過 115200 bps,如果你用 PC 設定模組的 baud rate,不小心設超過 115200 bps,可能之後就無法與之連線。如果你使用 PC,建議不要設超過 115200 bps。或者使用高速的 USB to Serial converter 連接線,例如 Prolific PL-2303 便可以支援到 921600 bps。
修改藍芽設備名稱
底下示範如何把藍芽模組的設備名稱改成 coopermaa:
輸入指令:
AT+NAMEcoopermaa
藍芽模組應該會回應:
OKsetname
如下圖所示:
設備名稱要在重開藍芽模組電源後才會改變。要注意設備名稱最多是 20 個字元。
修改配對密碼 (paring code)
底下示範如何把配對密碼 (paring code) 改成 5678:
輸入指令:
AT+PIN5678
藍芽模組應該會回應:
OKsetPIN
如下圖所示:
注意配對密碼最多為 4 個字元。配對密碼改變後會立即生效。
您好coopermaa大
回覆刪除小弟有一片HC-05
我把它改成57600以後它就不太甩我了
(雖然說之前也不太甩啦)
請問您有遇過這個問題嗎
還有想請教您
我想要他吐資料給手機或是藍芽接收端
我是要當master還是slave呢?
目前可以從PC送資料給它
可是要從他吐東西去PC就沒消息
好傷心阿QQ
HC-05 不太甩你?
回覆刪除一般來說用 slave mode 就好
slave mode 可以收也可以送資料,所以手機/PC送資料給它,或從 Arduino 吐資料給手機/PC,資料往哪個方向丟都可以
我還沒用過 HC-05 說
您好coopermaa大:
回覆刪除我也是使用HC-05的模組,一開始能正常使用,我使用的方式也很正常,但是它突然不能搜尋到,這個問題就跟我一開始使用的一顆BT-1022的模組遇到的問題差不多,不過BT1022是能配對但不能連線。
我本來以為是1022壞掉,所以才換成HC-05,但是也發生問題,所以我想請教coopermaa大這是哪方面的問題?謝謝!
@C^3
回覆刪除你還有其他 Arduino 板子嗎?
如果用 HC-05 和 BT1022 都這問題,建議換一張 Arduino 板子試試,另外一個可能是你所用的搜尋裝置(你是用 Android/iOS 或 ???),可以的話,換個組合交叉測試一下
大大您好
回覆刪除我這邊有一片HC05
我用的是Arduino UNO這片
我打開Serial Monitor後
不能輸入任何AT command
我在程式中寫入
sendBlueToothCommand("AT\r\n");
他Serial Monitor有跑出AT
但是藍芽沒有給回應OK
是甚麼問題呢?
是KEY腳沒有接到高電位嗎?
我沒用過 HC-05,只有用過 HC-06
回覆刪除(HC-05 有 Master 跟 Slave 兩種 mode)
你照另一篇的方法試試,這個方法比較簡單:
http://coopermaa2nd.blogspot.tw/2012/07/arduino-as-usb-to-ttl-adapter.html