HC-05與HC-06藍牙模組補充說明(二):連接電路

延續上一篇貼文,本文將補充藍牙模組與Arduino板的接線方法。

Arduino UNO板的輸出∕入腳位的邏輯電壓是5V。許多藍牙模組底板背面,都有標示它的傳送和接收的邏輯電位是3.3V

藍牙模組PCB板背後標示3.3V邏輯電位

因此,若直接把Arduino的訊號傳送腳,連接到藍牙模組的接收腳,有可能會損壞藍牙模組。某些藍牙模組的底板的接收腳位有串連一個1KΩ限流電阻,方便用戶直接與5V訊號電壓相連。

我們可以用三用電錶的「電阻」檔位,測量底板的RxD腳,和藍牙模組本身的第2腳,倘使電阻值趨近0,代表它們之間沒有限流電阻

用電錶測量模組腳位的連接情況

筆者購買的藍牙模組的接收腳不含限流電阻,但根據廠商提供的規格書指出,它能接受最高5.5V的訊號電壓。我直接將它連接到Arduino,模組也安然無恙。

在藍牙模組和Arduino板之間串接限流電阻

若有疑慮,需要將5V訊號電壓降轉成3.3V,最簡單也常見的方法有兩種。首先是採用上文提到的,在藍牙的接收腳和Arduino之間,串連一個1KΩ(棕黑紅)電阻

在藍牙的接收腳和Arduino之間,串連一個1KΩ(棕黑紅)電阻

假設流入藍牙模組的訊號電流是1mA,根據歐姆定律,它將在1KΩ電阻產生1V的電壓降。藍牙模組的規格書只有提到,在通訊階段,模組本身約消耗8mA~10mA電流。我沒有實際測量過流入藍牙模組接收腳的電流量,但是它應該遠低於1mA。

實驗時,我將1KΩ改成10KΩ(棕黑橙)電阻,也沒問題。

藍牙模組的傳送腳可直接與Arduino板相連,一般而言,只要訊號的電壓準位高於IC電壓的一半(以Arduino而言,高於2.5V),就是「高電位」,因此,5V的Arduino板,不會誤判藍牙模組的3.3V訊號。

3.3V和5V邏輯電位比較

Arduino的SoftwareSerial程式庫能把任何接腳(除了數位0和1之外)定義成序列埠,書本第14章的「用Android手機藍牙遙控機器人」一節,藍牙模組接在數位2和3腳,本例接在8和9腳。

藍牙模組與Arduino板的麵包板接線範例:

藍牙模組與Arduino板的麵包板接線範例

連接電阻分壓電路

第二種接線方法是採用如下圖的電阻分壓電路

5V降轉成3.3V電阻分壓電路

根據底下的分壓電路計算式,可得出5V訊號電壓將被降低成3.3V。實際的電阻值不一定要用1KΩ和2KΩ,只要約莫1:2的數值即可,例如:3.2KΩ和6.4KΩ。

分壓電路計算式

下回待續…

延伸閱讀

23 thoughts on “HC-05與HC-06藍牙模組補充說明(二):連接電路

  1. 老師請問Arduino互動設計入門14章,電腦和藍芽無線配對,windows XP作業系統有辦法配對嗎?
    範例檔14-1有錯,14-1的範例檔寫到15章的內容去了.

  2. 老師我用win xp系統開啟Accesport程式發送1資料,Arduino板子上的RX接收LED會閃一下,但是13輸出腳的LED無反應,
    我又用win7作業系統測試,但是系統會顯示不明的裝置,也無法自動線上更新裝置,怎麼辦?

  3. 摸索了半天,原來電腦端要再USB另外插入一個藍芽無線裝置,
    Accesport程式的連接埠,要設定和這藍芽裝置的連接埠相同埠號才對,
    過程有點煩雜,和老師書上的教學有很大出入阿,
    其他市面上Arduino書籍也是,對於這部份都講的錯誤.

    1. 呃…我覺得PC連接藍牙裝置的過程並不算繁瑣。

      至於藍牙連接埠(COM埠)的問題,書本14-15頁的步驟8,以及14-16頁的AccessPort設定畫面說明,都有提到啊?

      thanks,
      jeffrey

  4. 我用的是pic16f877做ADC給TX接HC-05的RX用來傳送波形,我電腦是筆電所以可以直接收到藍芽訊號,所以沒有買一個USB插電腦無線裝置,但總覺怪怪的,如果傳方撥或是頻率較低的波型它就完全沒有訊號進來,只有在波形變動大時才會收到資料。會不會是我沒有USB無線裝置的關係??

    1. 請問你的意思是,直接把ADC的輸出連接到TX腳位嗎?應該是將轉換後的資料,透過序列埠程式庫(像Arduino的Serial)包裝成序列通訊格式(如:起始位元、資料位元和停止位元數,有沒有同位檢查…等等),才能發送出去。

      建議先用有線序列埠連接測試看看。

      thanks,
      jeffrey

  5. 我想問一下 假設我想把感測器的數據用arduino+hc-06傳到手機上看是可行的嗎? 還是得用hc-05?

  6. 請問一下 新版的arduino 新版軟體 是不是 程式庫 安裝方式是不是不一樣?
    因為你書裡面是1.0.3版的
    新版是1.6.2

    我有個小問題
    如果我這樣寫

    webserver.addCommand(“A.html”, &AA);
    webserver.addCommand(“B.html”, &BB);
    webserver.addCommand(“C.html”, &CC);
    webserver.addCommand(“D.html”, &DD);

    可以正常執行 如果再加一行

    webserver.addCommand(“E.html”, &EE);

    就無法執行
    以上程式都一樣

    完整個程式如網址
    http://120.105.80.220/QA.txt
    可以幫我看一下嗎
    如果多一個

    webserver.addCommand(“E.html”, &EE);

    燒上板子以後 執行會錯誤

  7. 請問一下 因為學校要做畢業專題 遇到了瓶頸 手機配模組我們測試可以 現在arduino有辦法做到用藍芽模組隊藍芽模組嗎 求解… 在配對上一直對不到

  8. 請問!!

    我用的是ARDUINO UNO
    我在連結CH-06時
    AccesdPort 137不會顯示”BT is ready!”
    但是CH-06版上的紅燈是有連結上的(沒有閃爍)
    程式碼是用書裡寫的DIY14_1
    是版本有錯還是其他問題呢?

    本人也是超級初學者但需要用到藍芽控制
    還請老師多幫忙

    1. hi 小蝦:

      請確認藍牙模組是否有正常運作。依照下圖接好藍牙模組:

      測試藍藍牙模組

      接下來:
      1. 將模組通電,在電腦上進行配對。
      2. 確認藍牙模組序列埠的COM埠編號。
      3. 開啟AccessPort,設置連線(確認COM埠,預設傳輸速率為9600bps)

      設置連線後,若COM埠無誤,即可和藍牙序列模組建立連線。

      4. 在AccessPort中輸入任何訊息,發送出去後,會立即回應在「接收」窗格。

      如果接收不到輸入的訊息,或者出現亂碼,請調整傳輸速率再測試。

      若藍牙模組可正常運作,再把藍牙模組接到Arduino,並確認TXD和RXD腳是否接對。

      thanks,
      jeffrey

  9. 博主你好,你的文章非常詳細,我想將相關的幾篇文章原封轉載到論壇, open-gl.org,我會註明出處,請問可以嗎? 目前我只粘貼了鏈接,但是大陸訪問有限。

  10. 我超喜歡這本”超圖解Arduino”~尤其是對我這種非理工科的!!
    不過,我也是卡在Bluetooth這個章節,買回來的HC-06一直試不成功,連上電腦(com3,9600)但是AccessPort卻沒有反應‧可是~~試了幾天重新配對到(com5,9600)~卻可以了?!!這讓我十分納悶~~請問這要怎麼解釋?!謝謝~~

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *