文章目录
- 1 蓝牙模块HC-05
- 1.1 简介
- 1.2 管脚
- 2 Arduino与HC-05连接
- 3 蓝牙功能测试
- 3.1 代码
- 3.2 蓝牙配置
- 3.3 蓝牙与手机连接
- 4 两个蓝牙模块相互连接
1 蓝牙模块HC-05
1.1 简介
HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。该模块基于BC417单芯片蓝牙IC,符合蓝牙v2.0标准,支持UART和USB接口。
1.2 管脚
HC-05蓝牙模块有六个管脚,分别为:STATE、RXD、TXD、GND、VCC、EN。
- STATE:状态指示。未连接时输出低电平,连接时输出高电平。
- RXD:UART接收引脚(和MCU的TXD相连)。电平是3.3V,接5V的TXD需电压转换。
- TXD:UART发射引脚(和MCU的RXD相连)。
- GND:接地。
- VCC:接电源,可以用+5V。
- EN:使能。接地禁用模块,悬空或接3.3V使能。
2 Arduino与HC-05连接
LED非必要。
RXD——D11,图中有电压转换。
TXD——D10。
3 蓝牙功能测试
3.1 代码
蓝牙接收和发送功能测试。
#include <SoftwareSerial.h>
// 设置Arduino软件串口,10-RX,11-TX
const int BT_RX = 10;
const int BT_TX = 11;
// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(BT_RX, BT_TX );
char val;
void setup() {
Serial.begin(38400); //初始化Arduino串口,波特率自定,这里选38400
Serial.println("BT is ready!"); //测试与PC之间串口是否正常,正常则显示上述文字,异常则显示乱码
BT.begin(38400); // HC-05的AT模式默认通信波特率为38400
}
void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val); //将PC发来的数据存在val内,并发送给HC-05模块
}
if (BT.available()) {
val = BT.read();
Serial.print(val); //将HC-05模块发来的数据存在val内,并发送给PC
}
}
3.2 蓝牙配置
- 上传代码。
- Arduino断电,按住HC-05模块上的按钮,将Arduino与PC连接,发现HC-05模块指示灯2秒周期慢闪,即进入AT模式。
- 打开PC串口调试助手,显示“BT is ready!”。
- 发送AT指令配置蓝牙模块。修改蓝牙名称、配对密码,从模式,任意地址连接。
常用AT指令有:
- AT+NAME:查询修改蓝牙名称。
- AT+NAME或AT+NAME?,返回蓝牙名称。
- AT+NAME=XXX,修改蓝牙名称为XXX。
- AT+ROLE:查询修改主从模式。
- AT+ROLE或AT+ROLE?,返回当前主从模式,1表示主机,0表示从机。
- AT+ROLE=X,修改主从模式,X为1或0,对应主机和从机。
- AT+CMODE:查询修改连接模式。
- AT+CMODE或AT+CMODE?,返回连接模式,1表示任意蓝牙地址连接模式,0表示指定蓝牙地址连接模式,需要地址绑定
- AT+COMDE=X。
- AT+PSWD:查询修改配对密码。
- AT+PSWD或AT+PSWD?,返回密码,默认是1234。
- AT+PSWD=XXXX,XXXX为新密码。
- AT+ADDR:查询蓝牙模块地址。
- 返回蓝牙模块地址,如98d3:91:fd3d35。
- AT+BIND:查询修改绑定连接地址。
- AT+BIND或AT+BIND?,返回绑定连接地址。
- AT+BIND=XX,XX,XX,修改绑定地址,在CMODE=0时可用,注意冒号改为逗号。
- AT+UART:查询修改串口波特率。
- AT+ORGL:复位蓝牙模块。
- AT+RMAAD:清空配对列表。
3.3 蓝牙与手机连接
- 手机打开蓝牙调试助手。
- 设置好蓝牙模块后,断电重新上电,HC-05进入正常模式(指示灯快速连闪),打开PC上的串口助手。
- 手机找到蓝牙后进行连接,连接成功后HC-05上的指示灯将进入2s周期的快速双闪。
- 此时手机发送数据可在PC串口助手显示,PC串口发送数据可在手机显示。
4 两个蓝牙模块相互连接
配置蓝牙A为主机,指定地址连接;蓝牙B为从机。
- 蓝牙A、B进入AT模式。
- 设置B配对码,AT+PSWD=“0000”。
- 设置B从模式,AT+ROLE=0。
- 查询B地址,AT+ADDR,得到B地址XX:XX:XX。
- 设置A配对码,AT+PSWD=“0000”。(一定要一样)
- 设置A主模式,AT+ROLE=1。
- 设置A指定地址连接,AT+CMODE=0。
- A绑定B,AT+BIND=XX,XX,XX。
- 重新上电,连接成功后HC-05上的指示灯将进入2s周期的快速双闪。