Arduino藍牙模塊實現通信


藍牙參數特點

1.藍牙核心模塊使用HC-06從模塊,引出接口包括VCC,GND,TXD,RXD,預留LED狀態輸出腳,單片機可通過該腳狀態判斷藍牙是否已經連接

2.led指示藍牙連接狀態,閃爍表示沒有藍牙連接,常亮表示藍牙已連接並打開了端口

3.輸入電壓3.6~6V,未配對時電流約30mA,配對后約10mA,輸入電壓禁止超過7V!

4.可以直接連接各種單片機(51,AVR,PIC,ARM,MSP430等),5V單片機也可直接連接

5.在未建立藍牙連接時支持通過AT指令設置波特率、名稱、配對密碼,設置的參數掉電保存。藍牙連接以后自動切換到透傳模式

6.體積 3.57cm*1.52cm

7.該藍牙為從機,從機能與各種帶藍牙功能的電腦、藍牙主機、大部分帶藍牙的手機、Android、PDA、PSP等智能終端配對,從機之間不能配對。

Arduino 與藍牙模塊連接方法

VCC:接Arduino的5V。
GND:接Arduino的GND。

TXD:發送端,一般表示為自己的發送端,接Arduino的RX。
RXD:接收端,一般表示為自己的接收端,接Arduino的TX。
正常通信時候本身的TXD永遠接設備的RXD!正常通信時RXD接其他設備的TXD,

接下來就是寫程序了。為了測試通訊,PC通過無線連接向arduino發送一個字符't',arduino收到后閃一下燈,並向PC反饋一個字符串"echo"。程序如下:

const int ledpin = 13;

const int pinRx = 0;

const int pinTx = 1; 

void setup()

{

Serial.begin(9600);

pinMode(ledpin, OUTPUT);

}

void loop()

{

int val = Serial.read();

if (val == 't')

{

digitalWrite(ledPin, HIGH);   // set the LED on

delay(500);

digitalWrite(ledpin, LOW);

delay(500);

Serial.println("echo");

}

}

  相對上一個程序,這里面有些新的東西,就是串口對象Serial,這個對象對應於0,1接口的串口設備;當然,其他3個串口也有對應的串口對象,名字分別為Serial1, Serial2, Serial3。編程參考可以看這個鏈接:http://arduino.cc/en/Reference/Serial。這里使用的對象接口函數很簡單,Serial.begin(波特率),用於初始化串口並指定通訊的波特率;Serial.read()是從串口的接收緩沖區中讀出一個字符,如果沒有,返回-1;Serial.println(字符串)用於輸出一個帶回車符的字符串。需要提一下的是,arduino的第一個串口和FTDI USB-to-TTL串口芯片相接,也就是說這個串口設備可以通過USB線連接PC。

  程序寫完,就可以上傳運行了。藍牙模塊背面有2個燈,分別是power和state,通電后power就亮了,state燈卻一直閃爍,這是因為藍牙還沒有連接。PC端這時需打開藍牙管理,然后搜尋新的設備,會找到一個叫linvor的藍牙設備。打開,這個設備只有一個藍牙串口。點右鍵連接,跳出配對密碼輸入框,輸入密碼"1234"即可。連接完成后,可以看到藍牙模塊上的state燈長亮了,這表明連接正常,就可以進行通訊了。

  既然是通訊,PC端也要有個基於串口的通訊程序。除了使用arduino開發環境自帶的Serial Monitor,自己也可以找一個流行的。咱是懶人,就用開發環境自帶的好了,反正應用很簡單,這個程序也夠用了。點擊開發環境最右面Serial Monitor那個圖標,就跳出下面這個界面。不過要注意,在TOOL菜單下的COM選擇,應該是對應藍牙串口所用的那個串口編號,而不是USB的,否則,呵呵,就不是藍牙無線通訊而是USB串口通訊了。

  最后補充一下,藍牙模塊的信息是可以通過AT命令來進行改動的,缺省情況下,藍牙設備名是"linvor", 通訊波特率為9600,配對密碼為"1234"。具體說明如下:

  通過串口與電腦連接,再通過串口調試助手給模塊發送命令可以配置模塊的一些參數,

具體的配置方式如下:

1)、測試通訊:發送AT 命令,返回ok

2) 更改波特率

模塊默認的波特率是9600

發送AT BAUD1 返回OK1200

發送AT BAUD2 返回OK2400

……

BAUD1------------1200

BAUD2------------2400

BAUD3------------4800

BAUD4------------9600

BAUD5------------19200

BAUD6------------38400

BAUD7------------57600

BAUD8------------115200

BAUD9------------230400

A--------------------460800

B--------------------921600

C--------------------1382400

不建議使用超過115200 的波特率,因為大多系統都沒有提供高

於115200 的波特率,PC 機也是如此,波特率設置超過115200 以后,

電腦無法使用,要使用波特率高於115200 的系統才能重新發AT 命令

設置低的波特率,否則無法恢復低波特率了。

用AT 命令設置好波特率后,下次上電不需要再設置,掉電可以

保存波特率。

3)更改藍牙名字

發送:AT NAMEname

返回:OKname

參數name:你所要設置的名字,也就是藍牙被搜索到的名字,

20 個字符以內。

例:發送AT NAMEJYOO

返回返回JYOO

參數可以掉電保存,只需設置一次

4)更改藍牙配對密碼

發送:AT PINXXXX

返回:OKsetpin

參數XXXX:所需設置的密碼4 位,只需更改一次,掉電保存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM