HC-05/06蓝牙模块的原理及使用方法

Posted 单片机实例设计

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HC-05/06蓝牙模块的原理及使用方法相关的知识,希望对你有一定的参考价值。

一.模块特点

HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的 数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm, 接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。

模块自带 LED 灯,可直观判断蓝牙的连接状态。 模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式) 以及串口波特率、设备名称等参数,使用灵活。

二.模块原理

蓝牙模块的通信示意图如下:两个设备主控芯片或单片机分别连接各自的蓝牙模块,即将主控芯片与蓝牙模块的串口控制引脚交叉连接。因为蓝牙模块自带透传功能,简单来说就是主控芯片串口什么数据,蓝牙模块就转发什么数据,所以也可以把主控芯片的串口看作一个带有无线传输的串口。
由于蓝牙有主从机之分,模块出厂默认为从机模式。如果需要设置为主机,需要通过AT指令对蓝牙进行设置。

三.蓝牙模块与单片机的连接图

模块与供电系统为 3.3V 的 MCU 连接时,串口交叉连接即可(模块的 RX 接 MCU 的 TX、模块的 TX 接 MCU 的 RX);模块与供电系统为 5V 的 MCU 连接时,可在模块的 RX 端串接一个 220R~1K 电阻再接 MCU 的 TX,模块的 TX 直接接 MCU 的 RX,无需串接电阻。(注:请先确认所使用的 MCU 把 3.0V 或以上电压认定为高电平,否则需加上 3.3V/5V 电平转换电路;本人在使用STC89C52单片机是直连,不需要加电平转换电路)。如图:
(注:蓝牙模块自带5V转3.3V电路)。

四.蓝牙模块与手机APP通讯原理

带有蓝牙模块的单片机与手机APP的通信示意图,如下;蓝牙模块作为从机(蓝牙模块出厂默认为从机模式),安卓手机的蓝牙作为主机;手机在蓝牙界面上主动去搜索蓝牙设备,当搜索到设备“HC-05”时,点击该设备名称,此时会弹出输入匹配密钥,密钥为“1234”;

蓝牙配对成功后,打开蓝牙调试助手,点击“连接设备”,

然后点击“扫描新设备”,然后点击蓝牙名称,即可完成连接。(注:博主演示的蓝牙模块虽然不是HC-05,但是功能和HC-05一样)。

连接好蓝牙后,APP就可显示单片机发送的数据。

五.测试程序

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
 
 int main(void)
 {		
 	u16 t;  
	u16 len;	
	u16 times=0;
	delay_init();	    	 //延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(9600);	 //串口初始化为9600,APP波特率默认9600
 	LED_Init();			     //LED端口初始化
 	while(1)
	{
		printf("Hello World!!\\r\\n\\r\\n");
		delay_ms(500);
		
	}	 
 }

如需蓝牙模块原理图及测试程序等资料,请关注公众号“单片机实例设计”,首页回复“蓝牙模块”获取资料;

以上是关于HC-05/06蓝牙模块的原理及使用方法的主要内容,如果未能解决你的问题,请参考以下文章

51蓝牙红外循迹避障小车+代码

如何借助蓝牙模块使用 Android 手机控制 Arduino

[TPYBoard - Micropython之会python就能做硬件 8] 学习使用蓝牙模块及舵机

蓝牙外设卡在 iOS 上的“正在连接”状态

蓝牙测距原理

Android蓝牙开发(二)经典蓝牙消息传输实现