【蓝牙模块】[arduino+HC-06]连接[PC+HC-05]

物品\软件准备

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的连接位置,防止与板子输入输出冲突。

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
#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灯会亮一下,每发送一次会亮一下。

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
#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指令 } } }

本文作者:iuk11

本文链接:https://www.cnblogs.com/iuk11/p/17052915.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   iuk11  阅读(1774)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起