HC-05蓝牙模块

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HC-05与HC-06蓝牙串行端口通讯模块
HC-05和HC-06的硬件相同,都采用英国剑桥的CSR (Cambridge Silicon Radio) 公司的BC417143芯片,支持蓝牙+EDR规范,只是芯片内部的韧体不同。

CSR是全球市占率最高的蓝牙通讯芯片厂,2014年10月中旬,全球手机芯片龙头高通(Qualcomm)同意以25亿美元现金,购并CSR,以强化该公司在物联网(Internet of Things)的布局。

韩国三星也于2012年花费亿美元,取得CSR公司的蓝牙、WiFi和GPS定位等技术专利。

HC-05模块的外观与主要接脚如下:
附带底板的HC-05和HC-06蓝牙串行端口通讯模块
基本的蓝牙序列通讯模块没有引出接脚,而是在印刷电路板的四周留下邮票般的齿孔,方便焊接。

若不想动手焊接,可以选购附带底板的模块。

这个底板附带直流电压转换IC,方便连接~6V 的电源。

附带底板的HC-05蓝牙模块外观与接脚如下:
「命令响应模式」接脚(通常标示成“KEY”或“EN”),用于启动AT命令模式,调整蓝牙模块的设定(例如,调整串行端口的传输速率、修改模块的名称、修改配对密码…等等)。

市面上的藍牙裝置通常都屬於“slave(從端)”設備,像藍牙滑鼠∕鍵盤、藍牙GPS、藍牙遙控玩具…等等。

一般的Arduino蓝牙遥控和通讯实验,也都是用「从端」模式,所以HC-06模块足以应付大多数需求。

但如果HC-05和HC-06模块的价格差不多,那就买HC-05。

HC-05和HC-06的主要差异在于主、从模式的设定,以及设置模块参数的AT命令的支持程度。

HC-05通常支持30多道AT命令,HC-06只支持少数AT命令,但实务上会用到的AT命令通常也只有两、三个(请参阅下一篇贴文说明)。

若要采购HC-05,请选择有引出「命令响应模式」接脚的模块,方便执行AT命令。

不同蓝牙模块的引脚和韧体可能不太一样,购买时,务必跟厂商索取data sheet(规格说明书,含AT命令手册,有些会附带底板的电路图)。

Bluetooth 具备藍牙低功耗(Bluetooth Low Energy, BLE)模式,耗电量低,但计算机、手机和平板等装置的支持、普及程度,不及版。

如果你确认你的计算机和手机都支持蓝牙,那就可以选购蓝牙的序列通讯模块。

不管是HC-05, HC-06还是蓝牙,对Arduino都没有影响,控制程序都一样,实际接线也只用到4条线:电源、接地、传送(TxD)和接收(RxD)。

电路接线说明,请参阅下一篇贴文。

延续上一篇贴文,本文将补充蓝牙模块的AT命令模式与设定方法。

蓝牙模块的两种操作模式
自动联机(automatic connection),又称为透通模式( transparent communication)。

命令响应(order-response),又称为AT模式(AT mode)。

平时使用的「自动联机」模式只是把RxD脚传入的数据,转成蓝牙无线讯号传递出去;或者将接收到的无线数据,从TxD脚传给Arduino,模块本身不会解读数据,也不接受控制。

操控蓝牙模块的指令统称AT命令(AT-command)。

AT命令并非透过蓝牙无线传输,而是模块的TxD和RxD接脚。

蓝牙模块只有在AT模式,才能接收AT命令。

HC-05与HC-06蓝牙模块进入AT模式的方法
HC-06模块在与其他装置联机之前,都处于AT模式状态;换句话说,只要一通电,HC-06模块就进入AT模式。

HC-06的AT命令,采用9600bps的速率传送。

通電後,在尚未與裝置連線之前,HC-06板子上的LED將不停地閃爍;一旦與其他藍牙裝置
联机(如:手机或计算机),LED将维持点亮状态。

让HC-05模块进入AT模式,需要在通电之前,先把KEY脚位(蓝牙模块本身的34脚)接在高电位(通常指,但是接5V也行)。

如此,一通电,它就进入AT模式。

在尚未与装置联机之前,HC-05板子上的LED将快速闪烁;若进入AT模式,LED将慢速闪烁(两秒闪烁一次)。

HC-05的AT命令,采用38400bps的速率传送。

笔者购买的HC-05板子上面有一个按键,根据厂商提供的电路,这个按键接在蓝牙模块的34脚:
透过Arduino的串行端口设定蓝牙模块的AT命令
除了使用现成的USB转TTL序列模块来设定AT命令(请参阅「执行AT命令(AT-command)修改蓝牙模块的数据传输速率」),也能使用Arduino板来操作。

本节将撰写一个简易程序,把我们在计算机上敲入的AT命令,转发给接在Arduino上的蓝牙模块。

#include <> // 引用链接库
// 定义连接蓝牙模块的串行端口
SoftwareSerial BT(8, 9); // 接收脚, 传送脚
char val; // 储存接收数据的变量
void setup() {
(9600); // 与计算机串行端口联机
("BT is ready!");
// 设定蓝牙模块的联机速率
// 如果是HC-05,请改成38400
(9600);
}
void loop() {
// 若收到「串行端口监控窗口」的数据,则送到蓝牙模块
if ()) {
val = ();
(val);
}
// 若收到蓝牙模块的数据,则送到「串行端口监控窗口」
if ()) {
val = ();
(val);
}
}
在HC-05與HC-06藍牙模組上執行AT命令
程式上傳完畢後,開啟Arduino的「序列埠監控視窗」,HC-06模組的AT指令不需要加上行結尾字元,下圖是執行“AT+VERSION”命令,查看韌體版本的結果:。

相关文档
最新文档