主机:用于向从机下发指令,能够搜索从机并主动建立连接的一方。 从机:用于接收主机下发的命令,不能主动建立连接,只能等别人连接自己。(HC-06只能工作在从机模式下。) 主从一体:能够在主机和从机模式间切换,即可做主机也可作从机。如:HC-05既可以设置为主机也可以设置为从机。
引脚说明 HC-05和HC-06的硬件相同,都采用CSR (Cambridge Silicon Radio) 公司的BC417143芯片,支持蓝牙2.1+EDR规范,只是芯片內部的控制程序不同。 不管是HC-05还是HC-06,对于Arduino控制程序都是一样的,实际接线也只用到4个引脚:VCC、GND、TxD、RxD。 配置 Arduino UNO板的输出电压是5V。市面上很多蓝牙模块都标示工作电压是3.3V,因此,若直接把Arduino连接到蓝牙模块,有可能发生损坏。也有一些模块在底部区域设置了1KΩ的限流电阻,方便大家使用5V供电,选购时需要注意。通常可采用万用表「电阻」档,测量底板RxD引脚和蓝牙模块本身(就是焊接上去那块板)的第2脚,如果电阻值为接近于0,则代表沒有限流电阻。如下图: 如没有设置限流电阻也可以采用下面的连接方式,人为加入限流电阻: 使用AT指令前,最好有一块USB转TTL的模块,将蓝牙模块与USB转TTL模块连接完成(注意两者间的RX和TX要交叉连接),即可通过串口终端使用AT指令对模块进行相应的配置,AT指令集如下表: 特点
测试代码 蓝牙模块与Arduino连接完成,AT指令配置完成后即可通过下面的代码对模块功能进行测试。
/*************************** *Name: HC06.ino *Created: 2019/9/28 *Author: ****************************/ #include<softwareSerial.h> //使用SoftwareSerial,能将Arduino的数字输出引脚模拟成串口输出; SoftwareSerial BT(8, 9); //配置接收脚为8脚,发送脚为9脚; char val;//存储变量 void setup() { Serial.begin(9600); //设置串口; Serial.println("BT_HC06 ready for use!"); BT.begin(9600); //设置串口波特率; } void loop() { //如果串口接收到数据,则输出到蓝牙串口; if (Serial.available()) { val = Serial.read(); BT.print(val); } //如果HC06接收到数据; if (BT.available()) { val = BT.read(); Serial.print(val); } }