因前段時間比賽需要兩塊Arduino板子之間通過藍牙進行通信連接,在網(wǎng)上找了很多資料愉豺,都不是很詳細篓吁,但是七拼八湊,自己也做出一點出來了蚪拦,現(xiàn)在就自己寫一份總結(jié)吧越除!說不定以后用得著呢。
比賽用得是Arduino Nano板(用UNO板也是一樣的)外盯,然后藍牙都是HC-05模塊。(關(guān)于藍牙HC-05和HC-06下面用鏈接補充吧)
在進行通信連接之前需要先對兩個藍牙模塊進入AT模式進行一些設(shè)置翼雀,比如一個設(shè)置為主端饱苟,一個設(shè)置為從端,再將主端與從端進行綁定狼渊,斷電后就能自動連接了箱熬。
先上圖类垦,藍牙進入AT指令的連線圖:(因?qū)嵨锒己钙饋砹耍赃@邊用一個示意圖)
按上圖所示連接電路后城须,接通電源糕伐,如果發(fā)現(xiàn)藍牙上面的指示燈是每兩秒閃爍一次的話陪汽,那么藍牙此時成功進入AT模式挚冤。反之就要檢查一下電路和模塊是否有損壞等問題了训挡。
既然成功進入AT模式了澜薄,那么現(xiàn)在就要進行AT設(shè)置表悬,先上代碼:
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(8,9);
char val;
void setup() {
pinMode(9,OUTPUT);
digitalWrite(9,HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(38400);
}
void loop() {
if(BTSerial.available())
Serial.write(BTSerial.read());
if(Serial.available())
{
val = Serial.read();
Serial.println(val);
BTSerial.write(val);
}
}
代碼比較簡單,就不注釋了饭庞。
成功將代碼燒進去后舟山,在串口監(jiān)視器里面輸入相應(yīng)的AT指令就可以了累盗,接下來貼設(shè)置AT指令的步驟:
(PS:因為是兩個藍牙,所以先將藍牙分別叫做A和B蠢琳,然后將A設(shè)置為主,B設(shè)置為從)
- 恢復(fù)A默認設(shè)置:在串口監(jiān)視器中輸入:AT+ORGL【回復(fù)OK】
- 將A重命名:在串口監(jiān)視器中輸入:AT+NAME=A【回復(fù)OK】
- 設(shè)置A配對碼:只有當藍牙A與藍牙B的配對碼相同,這樣才能成功配對例衍;在串口監(jiān)視器中輸入:AT+PSWD=1234 【回復(fù)OK】
- 設(shè)置A為主端:在串口監(jiān)視器中輸入:AT+ROLE=1 【回復(fù)OK】
- 恢復(fù)B默認設(shè)置:在串口監(jiān)視器中輸入:AT+ORGL 【回復(fù)OK】
- 將B重命名:在串口監(jiān)視器中輸入:AT+NAME=B【回復(fù)OK】
- 設(shè)置B配對碼:肄渗,配置藍牙B的配對碼與藍牙A一致; 在串口監(jiān)視器中輸入:AT+PSWD=1234【回復(fù)OK】
- 設(shè)置B為從端:在串口監(jiān)視器中輸入:AT+ROLE=0【回復(fù)OK】
- 查詢B地址:在串口監(jiān)視器中輸入:AT+ADDR?【回復(fù)地址+OK,如98d3:32:710146+OK】
- 藍牙A綁定藍牙B:藍牙A綁定藍牙B物理地址惑申,在串口監(jiān)視器中AT+BIND=98d3,32,710146【注意把地址的冒號換成逗號,回復(fù)OK】
至此望几,藍牙AT指令已全部設(shè)置完成靴迫,接下來只要斷電后玉锌,將藍牙連接3V3的那根線拔掉后重新通電,兩個藍牙就可以自動連接了榄融。
連接成功的標志是A愧杯、B兩個模塊同步閃爍民效,并且隔兩秒閃兩次业扒。
到這里程储,你已經(jīng)實現(xiàn)兩路藍牙的連接了,下一篇文章將展示如何通信败徊。