因前段时间比赛需要两块Arduino板子之间通过蓝牙进行通信连接,在网上找了很多资料,都不是很详细,但是七拼八凑,自己也做出一点出来了,现在就自己写一份总结吧!说不定以后用得着呢。
比赛用得是Arduino Nano板(用UNO板也是一样的),然后蓝牙都是HC-05模块。(关于蓝牙HC-05和HC-06下面用链接补充吧)
在进行通信连接之前需要先对两个蓝牙模块进入AT模式进行一些设置,比如一个设置为主端,一个设置为从端,再将主端与从端进行绑定,断电后就能自动连接了。
先上图,蓝牙进入AT指令的连线图:(因实物都焊起来了,所以这边用一个示意图)
按上图所示连接电路后,接通电源,如果发现蓝牙上面的指示灯是每两秒闪烁一次的话,那么蓝牙此时成功进入AT模式。反之就要检查一下电路和模块是否有损坏等问题了。
既然成功进入AT模式了,那么现在就要进行AT设置,先上代码:
#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);
}
}
代码比较简单,就不注释了。
成功将代码烧进去后,在串口监视器里面输入相应的AT指令就可以了,接下来贴设置AT指令的步骤:
(PS:因为是两个蓝牙,所以先将蓝牙分别叫做A和B,然后将A设置为主,B设置为从)
- 恢复A默认设置:在串口监视器中输入:AT+ORGL【回复OK】
- 将A重命名:在串口监视器中输入:AT+NAME=A【回复OK】
- 设置A配对码:只有当蓝牙A与蓝牙B的配对码相同,这样才能成功配对;在串口监视器中输入:AT+PSWD=1234 【回复OK】
- 设置A为主端:在串口监视器中输入:AT+ROLE=1 【回复OK】
- 恢复B默认设置:在串口监视器中输入:AT+ORGL 【回复OK】
- 将B重命名:在串口监视器中输入:AT+NAME=B【回复OK】
- 设置B配对码:,配置蓝牙B的配对码与蓝牙A一致; 在串口监视器中输入:AT+PSWD=1234【回复OK】
- 设置B为从端:在串口监视器中输入:AT+ROLE=0【回复OK】
- 查询B地址:在串口监视器中输入:AT+ADDR?【回复地址+OK,如98d3:32:710146+OK】
- 蓝牙A绑定蓝牙B:蓝牙A绑定蓝牙B物理地址,在串口监视器中AT+BIND=98d3,32,710146【注意把地址的冒号换成逗号,回复OK】
至此,蓝牙AT指令已全部设置完成,接下来只要断电后,将蓝牙连接3V3的那根线拔掉后重新通电,两个蓝牙就可以自动连接了。
连接成功的标志是A、B两个模块同步闪烁,并且隔两秒闪两次。
到这里,你已经实现两路蓝牙的连接了,下一篇文章将展示如何通信。