物品\软件准备
arduino uno
公对母杜邦线
HC-06/HC-05各一个
USB转TLL
串口调试助手Xcom
Arduino IDE
连接方法HC-06
HC-06端 VCC - 5V Arduino端
HC-06端 GND - GND Arduino端
HC-06端 TXD - 串口8(自定) Arduino端
HC-06端 RXD - 串口9(自定) Arduino端
配置方法HC-06
先配置从机。
将Arduino与电脑通过USB数据线连接,通过Arduino IDE
烧录如下程序到板子,以改变TXD和RXD的连接位置,防止与板子输入输出冲突。
#include <SoftwareSerial.h>
//使用软件串口,能讲数字口模拟成串口
SoftwareSerial BT(8, 9); //TXD 8, RXD 9
char val; //存储接收的变量
void setup() {
Serial.begin(9600); //与电脑的串口连接
Serial.println("BT is ready!");
BT.begin(9600); //设置波特率
}
void loop() {
//如果串口接收到数据,就输出到蓝牙串口
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}
//如果接收到蓝牙模块的数据,输出到屏幕
if (BT.available()) {
val = BT.read();
Serial.print(val);
}
}
默认波特率为9600,直接用不用改。
点击打开串口。
测试:
然后输入指令AT
,进入设置成功则返回OK
。
正式配置:
①设置配对码(从机主机要一致)
AT+PIN1234
1234为配对码,可自行修改。
②设置从机蓝牙地址
AT+LADDR
查询当前蓝牙地址
AT+LADDR12:34:56:AB:CD:EF
设置地址为12:34:56:AB:CD:EF
,注意地址格式。
可以不修改地址,直接把主机绑定地址设置成当前从机地址,只要保证一致即可。
连接方法HC-05
HC-05端 VCC - 5V USB TO TLL端
HC-05端 GND - GND USB TO TLL端
HC-05端 TXD - RXD USB TO TLL端
HC-05端 RXD - TXD USB TO TLL端
配置方法HC-05
同样在串口助手中配置。
设置阶段
在供电前手按住蓝牙模块上的按钮,供电后松开,看到蓝牙模块的红灯变成两秒一闪,即进入了设置模式。此时波特率为38400。
测试:
然后输入指令AT
,进入设置成功则返回OK
。
正式配置:
①设置蓝牙模块的角色
AT+ROLE=1
设置成主机模式。
成功则返回OK
,以下指令均如此。
②设置配对码
AT+PSWD="1234"
要与从机设置的配对码相同。
③设置连接模式
AT+CMODE=0
设置成只对特定蓝牙地址的配对模式。
④设置绑定配对的蓝牙地址
AT+BIND=1234,56,ABCDEF
注意此时的地址格式,与从机不同,可以通过AT+BIND
查看当前绑定的从机蓝牙地址以及格式。
⑤拔掉电源,停止供电,即退出了设置模式。
连接阶段
先打开从机HC-06
再打开主机HC-05
此时两个蓝牙模块红灯均是一秒闪烁两次,
等待一会儿后会发现闪烁频率发生变化,
可以通过串口通信查看是否已经连接完成。
我又使用外接电源给Arduino
进行供电,同样连接成功。
测试代码如下。通过串口调试工具,发送指令1
,Arduino内的LED灯会亮一下,每发送一次会亮一下。
#include <SoftwareSerial.h>
SoftwareSerial BT(8, 9); //TXD 8, RXD 9
char val; //存储接收的变量
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT); //11引脚连接演示用LED
BT.begin(9600); //设置波特率
}
void loop(){
//如果接收到蓝牙模块的数据,输出到屏幕
if (BT.available()) {
val = BT.read();
Serial.print(val);
if (val == '1' ) { //接收到点亮LED指令
Serial.print("Got command: ");
Serial.println(val);
digitalWrite(LED_BUILTIN, HIGH); //点亮LED指令
} else { //接收到熄灭LED指令
Serial.print("Got command: ");
Serial.println(val);
digitalWrite(LED_BUILTIN, LOW); //熄灭LED指令
}
}
}
标签:06,val,arduino,蓝牙,BT,串口,HC,Serial
From: https://www.cnblogs.com/iuk11/p/17052915.html