4962浏览
查看: 4962|回复: 5

[进阶] Arduino 上使用 HC06 蓝牙模块

[复制链接]
Arduino 上使用 HC06 蓝牙模块图4
HC-05和HC-06是现在使用较多的两种蓝牙模块。两者之间的区别是HC-05是主从一体机,既能向自己的“主子”打小报告,也可以接收下达的命令;而HC-06只能工作在从机模式下,那就只能乖乖接收上级的命令啦。
在很多情况下,我们都想当“霸道总裁”,让下级乖乖听话就OK了,不需要他多废话。那就用HC-06就够了。
上面是HC-06的模块示意图。

接线
可以看到它有4个引脚,那么它接线如下:
Arduino 上使用 HC06 蓝牙模块图5
在这里,我并没有使用Arduino的0,1号口,而是使用了两个数字口。这样就不会占用Arduino自身的串口。

AT模式
在按照上面的接线之后,HC-06会自动进入AT模式,在这个模式下,可以通过串口对蓝牙模块进行一些诸如修改名称、密码的操作。
注意:AT命令一定要大写,中间的+不可省略

不建议设置更高的波特率,通信会不稳定

Arduino 上使用 HC06 蓝牙模块图2
Arduino 上使用 HC06 蓝牙模块图3
Arduino 上使用 HC06 蓝牙模块图1
[mw_shl_code=applescript,true]/*
Name:    Bluetooth.ino
Created: 2016/7/30 13:26:47
Author:  Fing
*/
#include <SoftwareSerial.h>
//使用软件串口,能讲数字口模拟成串口
SoftwareSerial BT(8, 9);  //新建对象,接收脚为8,发送脚为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);
  }
}[/mw_shl_code]

连接Arduino,写入程序。进入串口,输入AT,看看是不是有OK返回。
之后就可以愉快地使用HC-06模块了。

手机连接调试蓝牙
通过SPP蓝牙助手可以实现连接蓝牙和与蓝牙之间的通信。
我用的是unWired Lite,可以在Play市场上下载到。



gada888  版主

发表于 2020-1-19 08:35:09

txm派瑞深山锹 发表于 2020-1-18 22:10
为啥我只有BT is ready!而发送AT没有返回值
???

这个模块山寨版很多,你可以试试给TX,RX 线3.3V 逻辑供电
回复

使用道具 举报

gada888  版主

发表于 2019-3-21 13:59:56

发帖不易,继续努力。
回复

使用道具 举报

txm派瑞深山锹  高级技师

发表于 2020-1-18 22:10:19

为啥我只有BT is ready!而发送AT没有返回值
???
回复

使用道具 举报

txm派瑞深山锹  高级技师

发表于 2020-1-18 22:15:45

请问串口里的nl和cr是什么意思???
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-6 06:27:06

at模式有用吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail