Arduino驱动HC-05蓝牙模块

HC-05模块概述

HC-05是一个蓝牙模块,连接到微控制器的串行端口,允许微控制器通过蓝牙连接与其他设备通信。模块本身可以在主模式和从模式下运行,并且可以用于各种应用,例如,智能家居应用,远程控制,数据记录应用,机器人,监控系统等。
(1) 采用CSR主流蓝牙芯片,蓝牙V2.0协议标准;
(2) 输入电压:3.6V–6V,禁止超过7V;
(3) 波特率为1200,2400,4800,9600,19200,38400,57600,115200用户可设置;(AT模式38400,正常模式9600)
(4) 带连接状态指示灯,LED快闪表示没有蓝牙连接;LED慢闪表示进入AT命令模式或者正常工作模式;
(5) 板载3.3V稳压芯片,输入电压直流3.6V-6V;未配对时,电流约30mA(因LED灯闪烁,电流处于变化状态);配对成功后,电流大约10mA。
(6) 用于GPS导航系统,水电煤气抄表系统,工业现场采控系统;
(7) 可以与蓝牙笔记本电脑、电脑加蓝牙适配器等设备进行无缝连接。
(8 HC-05 嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有 AT 命令,用户可向模块发送各种 AT 指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。

HC-05的使用

进入AT模式:
将代码烧录金Arudino(波特率38400),然后拔掉Arduino与电脑连接的线,在未通电时按住HC-05的按键,然后将Arudino与电脑接通
即可看到屏幕出现如下字符
在这里插入图片描述
把最下面改为NL和CR模式,发送AT,看到ok即进入AT模式,然后就可以改动蓝牙的配置
在这里插入图片描述
附上命令表

介绍了基本操作方法,下面我们正式开始AT命令的详细说明 1,AT+ROLE设置主从模式:
AT+ROLE?是查询主从状态;AT+ROLE=1是设成主,AT+ROLE=0
是设成从,AT+ROLE=2设成回环角色(Slave-Loop(回环角色)——被动连接,接收远
程蓝牙主设备数据并将数据原样返回给远程蓝牙)。 2,AT+RESET:HC-05复位
3,AT+VERSION?:获取HC-05的软件版本号,只能获取,不能修改。
4,AT+ORGL:恢复出厂默认设置,当把模块设置乱了,使用此命令进行恢复默认值。
5,AT+ADDR?:获取HC-05的蓝牙地址码,只能获取,不能修改。
6,AT+NAME?:获取HC-05的名字,AT+NAME=BSP-06,修改模块的名字为BSP-06,具体 名字自行修改。
7,AT+CLASS?:设置查询设备的类型,尽量不要去修改此参数。默认是1F00。
8,AT+IAC?:查询设置查询访问码,默认是9E8B33,尽量不要去修改此参数。
9,AT+PSWD?:查询设置配对密码,AT+PSWD=”0000”,密码要有双引号,密码是四位数字. 10,
AT+UART:AT+UART?是查询当前模块的波特率,AT+UART=波特率是设置. 11,
AT+CMODE:AT+CMODE?是查询当前连接模式。AT+CMODE=0,1,2(0——指
定蓝牙地址连接模式(指定蓝牙地址由绑定指令设置)1——任意蓝牙地址连接模
式(不受绑定指令设置地址的约束)2——回环角色(Slave-Loop)默认连接模式: 0)。 12,
AT+BIND:AT+BIND?查询当前绑定地址,AT+BIND=NAP,UAP,LAP(用逗号隔开)。 13,
AT+RMADD:从蓝牙配对列表中删除所有认证设备. 14, AT+STATE?:获取蓝牙模块工作状态. 15,
AT+LINK=NAP,UAP,LAP:与远程设备建立连接。 16, AT+DISC:断开连接. 17,
AT+RNAME?NAP,UAP,LAP:获取远程蓝牙设备名称. 18, AT+ADCN?:获取蓝牙配对列表中认证设备数。 19,
AT+MRAD?获取最近使用过的蓝牙认证设备地址。 20,
AT+INQM:设置查询模式,AT+INQM=1,9,48(1-带RSSI信号强度指示,9-超过9个
蓝牙设备响应则终止查询,48-设定超时为48*1.28=61.44秒)

遇到的问题

1.进入AT模式,Arduio的串口监视器无法无法收到蓝牙的返回值OK,(在进入AT工作模式波特率必须使用38400,否则无法进入AT模式)
解决办法:在串口监视器最下面改为NL和CR模式Arduino驱动HC-05蓝牙模块_第1张图片
2.切换回正常模式需把波特率改为9600,否则无法发送和接受字符,最后把最下面改为如下Arduino驱动HC-05蓝牙模块_第2张图片

试验效果

模块有问题,所以出现的是?
在这里插入图片描述

代码

#include  
//Pin10为RX,接HC05的TXD
//Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11);

int led=13;
char val;
void setup() {
  pinMode(led,OUTPUT);
  Serial.begin(9600);
  Serial.println("BT is ready!");
  // HC-05默认,38400
  BT.begin(9600);
}
void loop() {
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
    digitalWrite(led,HIGH);
  }
  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
    digitalWrite(led,LOW);
  }
}

你可能感兴趣的:(Arduino驱动HC-05蓝牙模块)