延續上一篇貼文,本文將補充藍牙模組與Arduino板的接線方法。
Arduino UNO板的輸出∕入腳位的邏輯電壓是5V。許多藍牙模組底板背面,都有標示它的傳送和接收的邏輯電位是3.3V:
因此,若直接把Arduino的訊號傳送腳,連接到藍牙模組的接收腳,有可能會損壞藍牙模組。某些藍牙模組的底板的接收腳位有串連一個1KΩ限流電阻,方便用戶直接與5V訊號電壓相連。
我們可以用三用電錶的「電阻」檔位,測量底板的RxD腳,和藍牙模組本身的第2腳,倘使電阻值趨近0,代表它們之間沒有限流電阻:
筆者購買的藍牙模組的接收腳不含限流電阻,但根據廠商提供的規格書指出,它能接受最高5.5V的訊號電壓。我直接將它連接到Arduino,模組也安然無恙。
在藍牙模組和Arduino板之間串接限流電阻
若有疑慮,需要將5V訊號電壓降轉成3.3V,最簡單也常見的方法有兩種。首先是採用上文提到的,在藍牙的接收腳和Arduino之間,串連一個1KΩ(棕黑紅)電阻:
假設流入藍牙模組的訊號電流是1mA,根據歐姆定律,它將在1KΩ電阻產生1V的電壓降。藍牙模組的規格書只有提到,在通訊階段,模組本身約消耗8mA~10mA電流。我沒有實際測量過流入藍牙模組接收腳的電流量,但是它應該遠低於1mA。
實驗時,我將1KΩ改成10KΩ(棕黑橙)電阻,也沒問題。
藍牙模組的傳送腳可直接與Arduino板相連,一般而言,只要訊號的電壓準位高於IC電壓的一半(以Arduino而言,高於2.5V),就是「高電位」,因此,5V的Arduino板,不會誤判藍牙模組的3.3V訊號。
Arduino的SoftwareSerial程式庫能把任何接腳(除了數位0和1之外)定義成序列埠,書本第14章的「用Android手機藍牙遙控機器人」一節,藍牙模組接在數位2和3腳,本例接在8和9腳。
藍牙模組與Arduino板的麵包板接線範例:
連接電阻分壓電路
第二種接線方法是採用如下圖的電阻分壓電路。
根據底下的分壓電路計算式,可得出5V訊號電壓將被降低成3.3V。實際的電阻值不一定要用1KΩ和2KΩ,只要約莫1:2的數值即可,例如:3.2KΩ和6.4KΩ。
下回待續…
老師請問Arduino互動設計入門14章,電腦和藍芽無線配對,windows XP作業系統有辦法配對嗎?
範例檔14-1有錯,14-1的範例檔寫到15章的內容去了.
老師我用win xp系統開啟Accesport程式發送1資料,Arduino板子上的RX接收LED會閃一下,但是13輸出腳的LED無反應,
我又用win7作業系統測試,但是系統會顯示不明的裝置,也無法自動線上更新裝置,怎麼辦?
摸索了半天,原來電腦端要再USB另外插入一個藍芽無線裝置,
Accesport程式的連接埠,要設定和這藍芽裝置的連接埠相同埠號才對,
過程有點煩雜,和老師書上的教學有很大出入阿,
其他市面上Arduino書籍也是,對於這部份都講的錯誤.
呃…我覺得PC連接藍牙裝置的過程並不算繁瑣。
至於藍牙連接埠(COM埠)的問題,書本14-15頁的步驟8,以及14-16頁的AccessPort設定畫面說明,都有提到啊?
thanks,
jeffrey
我用的是pic16f877做ADC給TX接HC-05的RX用來傳送波形,我電腦是筆電所以可以直接收到藍芽訊號,所以沒有買一個USB插電腦無線裝置,但總覺怪怪的,如果傳方撥或是頻率較低的波型它就完全沒有訊號進來,只有在波形變動大時才會收到資料。會不會是我沒有USB無線裝置的關係??
請問你的意思是,直接把ADC的輸出連接到TX腳位嗎?應該是將轉換後的資料,透過序列埠程式庫(像Arduino的Serial)包裝成序列通訊格式(如:起始位元、資料位元和停止位元數,有沒有同位檢查…等等),才能發送出去。
建議先用有線序列埠連接測試看看。
thanks,
jeffrey
我想問一下 假設我想把感測器的數據用arduino+hc-06傳到手機上看是可行的嗎? 還是得用hc-05?
用HC-06就可以了~
have fun!
jeffrey
請問一下 新版的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);
燒上板子以後 執行會錯誤
hi 詹兄:
若採用1.0.5以上的Arduino IDE編寫程式,請到Webduino專案頁面下載最新的Webduino程式庫(或直接按此連結下載)。用新的Webduino程式庫替換舊的,即可順利編譯。
thanks,
jeffrey
請問一下
我的藍芽是擴充版 SLD63030P 有2塊
http://www.seeedstudio.com/wiki/index.php?title=Bluetooth_Shield
藍芽 的 Slave 和 Master 要怎麼寫互相配對的程式
hi pon:
我沒有測試過,請參閱「執行AT命令(AT-command)修改藍芽模組的資料傳輸速率」這篇文章底下的留言,像是這一則留言。
good luck!
jeffrey
請問一下 因為學校要做畢業專題 遇到了瓶頸 手機配模組我們測試可以 現在arduino有辦法做到用藍芽模組隊藍芽模組嗎 求解… 在配對上一直對不到
請參閱「藍牙模組補充說明(四):無線連結兩個Arduino控制板」這一篇貼文。
thanks,
jeffrey
請問!!
我用的是ARDUINO UNO
我在連結CH-06時
AccesdPort 137不會顯示”BT is ready!”
但是CH-06版上的紅燈是有連結上的(沒有閃爍)
程式碼是用書裡寫的DIY14_1
是版本有錯還是其他問題呢?
本人也是超級初學者但需要用到藍芽控制
還請老師多幫忙
hi 小蝦:
請確認藍牙模組是否有正常運作。依照下圖接好藍牙模組:
接下來:
1. 將模組通電,在電腦上進行配對。
2. 確認藍牙模組序列埠的COM埠編號。
3. 開啟AccessPort,設置連線(確認COM埠,預設傳輸速率為9600bps)
設置連線後,若COM埠無誤,即可和藍牙序列模組建立連線。
4. 在AccessPort中輸入任何訊息,發送出去後,會立即回應在「接收」窗格。
如果接收不到輸入的訊息,或者出現亂碼,請調整傳輸速率再測試。
若藍牙模組可正常運作,再把藍牙模組接到Arduino,並確認TXD和RXD腳是否接對。
thanks,
jeffrey
博主你好,你的文章非常詳細,我想將相關的幾篇文章原封轉載到論壇, open-gl.org,我會註明出處,請問可以嗎? 目前我只粘貼了鏈接,但是大陸訪問有限。
順便咨詢,博主的圖片都是用什麼軟件製作的,很精美 : )
hi vicyang:
謝謝,可以的。那些圖片都是用Flash畫的。
thanks,
jeffrey
我超喜歡這本”超圖解Arduino”~尤其是對我這種非理工科的!!
不過,我也是卡在Bluetooth這個章節,買回來的HC-06一直試不成功,連上電腦(com3,9600)但是AccessPort卻沒有反應‧可是~~試了幾天重新配對到(com5,9600)~卻可以了?!!這讓我十分納悶~~請問這要怎麼解釋?!謝謝~~
拍謝~這考倒我了,不過,恭喜你的藍牙和Windows配對成功!
Merry Christmas!
jeffrey
請問大大
我想把HC-06的狀態指示燈外加一顆LED並拉出來
請問有沒有辦法?
hi makhai:
請參閱「HC-05與HC-06藍牙模組補充說明(一)」,如果你的藍牙模組沒有status接腳,那就得自行焊接了。
thanks,
jeffrey
請問3.3v電源可以直接用uno板上3.3v嗎?
可以
Hi 老師, 請問我有一塊設備 把TX RX GND pin接上USB to TTL後(GNDGND , TXRX , RXTX)就可以用電腦控制和看Log (抱歉不曉得這個叫uart還是ttl)
請問為什麼不用接ACC就可以運作?是TX/RX就是一種帶有電位的訊號嗎…而且設備也沒有ACC pin
現在想改成HC-06無線控制, 但因為設備沒有ACC供應給HC-06. 所以我拿行動電源,可以輸出5V, 但因為要接上ACC和GND才會形成一個迴路供電, 所以HC-06的ACC和GND都要接上行動電源那(為了供電給HC-06)
這樣就沒有GND接到設備了, 設備的TX RX接上HC-06後, 用電腦連接HC-06(燈從閃爍變成恆亮), Terminal有時可以使用(有Log跑出來), 有時會一直印亂碼, 有時完全沒動靜
請問這樣設備沒有ACC , 我還能用行動電源完成這種HC-06無線方案嗎
感謝
USB轉TTL介面板的Vcc腳是電壓「輸出」,不是輸入,可供電給控制板,如果控制板本身已經有電源,就只要接Tx, Rx和接地。USB轉TTL介面板的晶片的電源來自USB介面,也就是由電腦供電給它。
thanks,
jeffrey
Hi 老師,不好意思我繼續請教
HC-06本身沒有電源所以從USB to TTL接過來(接VCC,GND)
但也因為這樣HC-06的GND被用掉了,所以沒辦法接GND到設備,剩下TX,RX可接
然後藍芽連接後就有時文字正常,有時沒文字,有時吐亂碼
是不是要把三個GND(設備,HC-06,USB toTTL)通通接在一起呢?
沒錯,接地要接在一起。
thanks,
jeffrey
您好:
你的書本對我非常有幫助(特別沒有電路背景的我),非常感謝你。
想請問你在Arduino互動設計入門第四版中15-10的實驗電路,為何藍芽模組可以直接接TxD跟RxD,
而不用像15-11中先降壓,
非常感謝你的回答。
拍謝,是我忘了加上電阻,正確應該像15-11或15-16頁的接法,感謝糾錯!
thanks,
jeffrey