【Arduino】蓝牙模块HC-05

1 蓝牙模块HC-05

1.1 简介

HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。该模块基于BC417单芯片蓝牙IC,符合蓝牙v2.0标准,支持UART和USB接口。
蓝牙模块实物图

1.2 管脚

HC-05蓝牙模块有六个管脚,分别为:STATE、RXD、TXD、GND、VCC、EN。

  • STATE:状态指示。未连接时输出低电平,连接时输出高电平。
  • RXD:UART接收引脚(和MCU的TXD相连)。电平是3.3V,接5V的TXD需电压转换
  • TXD:UART发射引脚(和MCU的RXD相连)。
  • GND:接地。
  • VCC:接电源,可以用+5V。
  • EN:使能。接地禁用模块,悬空或接3.3V使能。

2 Arduino与HC-05连接

LED非必要。
RXD——D11,图中有电压转换。
TXD——D10。
Arduino与HC-05连接

3 蓝牙功能测试

3.1 代码

蓝牙接收和发送功能测试。

#include <SoftwareSerial.h>
// 设置Arduino软件串口,10-RX,11-TX
const int BT_RX = 10;
const int BT_TX = 11;
// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(BT_RX, BT_TX );
char val;
void setup() {
	Serial.begin(38400); //初始化Arduino串口,波特率自定,这里选38400
	Serial.println("BT is ready!"); //测试与PC之间串口是否正常,正常则显示上述文字,异常则显示乱码
	BT.begin(38400); // HC-05的AT模式默认通信波特率为38400
}
void loop() {
	if (Serial.available()) {
		val = Serial.read();
		BT.print(val); //将PC发来的数据存在val内,并发送给HC-05模块
	}
	if (BT.available()) {
		val = BT.read();
		Serial.print(val); //将HC-05模块发来的数据存在val内,并发送给PC
	}
}

3.2 蓝牙配置

  1. 上传代码。
  2. Arduino断电,按住HC-05模块上的按钮,将Arduino与PC连接,发现HC-05模块指示灯2秒周期慢闪,即进入AT模式。
  3. 打开PC串口调试助手,显示“BT is ready!”。
  4. 发送AT指令配置蓝牙模块。修改蓝牙名称、配对密码,从模式,任意地址连接。

常用AT指令有:

  • AT+NAME:查询修改蓝牙名称。
    • AT+NAME或AT+NAME?,返回蓝牙名称。
    • AT+NAME=XXX,修改蓝牙名称为XXX。
  • AT+ROLE:查询修改主从模式。
    • AT+ROLE或AT+ROLE?,返回当前主从模式,1表示主机,0表示从机。
    • AT+ROLE=X,修改主从模式,X为1或0,对应主机和从机。
  • AT+CMODE:查询修改连接模式。
    • AT+CMODE或AT+CMODE?,返回连接模式,1表示任意蓝牙地址连接模式,0表示指定蓝牙地址连接模式,需要地址绑定
    • AT+COMDE=X。
  • AT+PSWD:查询修改配对密码。
    • AT+PSWD或AT+PSWD?,返回密码,默认是1234。
    • AT+PSWD=XXXX,XXXX为新密码。
  • AT+ADDR:查询蓝牙模块地址。
    • 返回蓝牙模块地址,如98d3:91:fd3d35。
  • AT+BIND:查询修改绑定连接地址。
    • AT+BIND或AT+BIND?,返回绑定连接地址。
    • AT+BIND=XX,XX,XX,修改绑定地址,在CMODE=0时可用,注意冒号改为逗号。
  • AT+UART:查询修改串口波特率。
  • AT+ORGL:复位蓝牙模块。
  • AT+RMAAD:清空配对列表。

3.3 蓝牙与手机连接

  1. 手机打开蓝牙调试助手。
  2. 设置好蓝牙模块后,断电重新上电,HC-05进入正常模式(指示灯快速连闪),打开PC上的串口助手。
  3. 手机找到蓝牙后进行连接,连接成功后HC-05上的指示灯将进入2s周期的快速双闪。
  4. 此时手机发送数据可在PC串口助手显示,PC串口发送数据可在手机显示。

4 两个蓝牙模块相互连接

配置蓝牙A为主机,指定地址连接;蓝牙B为从机。

  1. 蓝牙A、B进入AT模式。
  2. 设置B配对码,AT+PSWD=“0000”。
  3. 设置B从模式,AT+ROLE=0。
  4. 查询B地址,AT+ADDR,得到B地址XX:XX:XX。
  5. 设置A配对码,AT+PSWD=“0000”。(一定要一样)
  6. 设置A主模式,AT+ROLE=1。
  7. 设置A指定地址连接,AT+CMODE=0。
  8. A绑定B,AT+BIND=XX,XX,XX。
  9. 重新上电,连接成功后HC-05上的指示灯将进入2s周期的快速双闪。
  • 3
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 可以使用ArduinoHC-05蓝牙模块来控制舵机。首先,需要将HC-05模块Arduino连接,并使用软件串口库来进行通信。然后,可以编写代码来接收蓝牙模块发送的指令,并将其转换为舵机的控制信号。最后,将舵机连接到Arduino的PWM引脚上,以实现远程控制舵机的功能。 ### 回答2: Arduino HC05蓝牙控制舵机是一种基于Arduino蓝牙通信技术的智能舵机控制系统。该系统通过Arduino主控板连接舵机,通过HC05蓝牙模块实现与移动设备的通信,从而实现远程控制舵机的目的。 在制作这样一个系统时,需要Arduino主控板、HC05蓝牙模块、舵机、面包板、杜邦线等器材。首先,将舵机连接到Arduino主控板,可以使用面包板连接线或直接焊接。然后将HC05蓝牙模块插入Arduino主控板的串行通信口,并连接到5V电源和地线。接下来,需要下载Arduino IDE并安装hc05库,编写程序进行控制。 编写程序时,需要设置Arduino主控板的引脚,并编写控制舵机的代码。具体来说,需要将HC05蓝牙模块设置为串行通信模式,并使用Serial.println()和Serial.read()函数进行通信。通过对通信数据的解析,可以实现远程控制舵机的功能。 实现了Arduino HC05蓝牙控制舵机系统后,我们可以通过手机APP或其他蓝牙设备向Arduino发送指令,控制舵机的运动。例如,可以使用模拟控制杆来控制舵机的转动方向和速度,或使用按钮控制舵机的开启和关闭。此外,我们还可以将该系统与其他传感器进行联动,实现更加智能化的控制功能。 ### 回答3: Arduino HC05蓝牙与舵机的控制可以实现无线控制舵机的效果,因此在各种外部控制上具有很好的应用,只需要使用一个舵机和HC05蓝牙,即可实现所有蓝牙外部控制的舵机。Arduino对舵机进行编程控制的方法有很多,根据不同的应用场景和需求,可以选择不同的控制方法。 首先,需要通过HC-05蓝牙模块Arduino板进行连接。可以使用HC-05蓝牙模块Arduino板进行无线通信,但需要先将它们进行匹配和配对,我们需要使用相应的软件和代码进行编程和控制。 接着,在舵机信号引脚、电源引脚和地线之间连接线路,来使舵机与Arduino板之间建立连接。舵机通常是一个三线电机,其中黄色的控制线连接到Arduino的一个数字引脚,红色的正极连接到+5V电源引脚,棕色的负极连接到GND引脚。 然后,使用Arduino IDE编写蓝牙控制程序。该程序需要检测和接收来自手机或其他蓝牙设备的指令,并解码这些指令,将它们转变为舵机的变动信号进行控制。常见的舵机控制函数主要有三个:servo.attach(pin),servo.write(angle)和servo.detach()。 最后,将编写的程序下载到Arduino板上进行运行。在运行时,Arduino将与HC05蓝牙模块进行通信,接收来自蓝牙设备的指令信号,通过控制舵机的信号引脚,将舵机的转动角度改变。 总结来说,通过蓝牙控制舵机可以实现无线控制的效果,适用于各种场景的应用,如无人机、遥控车和机器人等。但是在实践中需要注意硬件的连线和程序的编写,确保控制信号传递的正确和稳定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值