两块Arduino分别与HC-05模块和 HC-06模块连接并进行通信

这篇博客介绍了如何将两块Arduino通过蓝牙模块HC-05和HC-06进行通信。首先,详细说明了HC-05模块的引脚功能和如何进入AT模式进行配置,包括设置名称、密码、角色和波特率。然后,提供了Arduino程序以实现蓝牙通信,并解释了如何验证设置是否成功。最后,简要提到了HC-06作为从机的调试步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要做一个简单的装置,需要用到两个蓝牙模块分别与两块Arduino连接,一个作为发送,一个作为接收。

关于HC-05与Arduino的连接与调试如下:

HC-05引脚:

STATE:蓝牙连接状态指示,连接成功此引脚为高电平,没有连接则为低电平

RX:接收端

TX:发送端

GND:接地端

+5V:5V电源输入端

EN:使能端,需要进入AT模式时接3.3V。其实不接也没有关系

1.接线与进入AT模式设置:

接线:

  • RX —>TX
  • TX —>RX
  • GND —>GND
  • +5V —>5V

另外两个引脚可以不接

在arduino下载以下程序,为了不与arduino自带串口冲突,选用软件模拟串口,我选用6,7引脚

#include <SoftwareSerial.h>
SoftwareSerial BTserial(6, 7); // RX | TX
// Connect the HC-05 TX to Arduino pin 6 RX. 
// Connect the HC-05 RX to Arduino pin 7 TX through a voltage divider.

char c = ' ';

void setup() 
{
    // start th serial communication with the host computer
    Serial.begin(9600);
    Serial.println("Arduino with HC-05 is ready");

    // start communication with the HC-05 using 38400
    BTserial.begin(38400);  
    Serial.println("BTserial started at 3
### 使用ArduinoHC-06蓝牙模块进行主从模式配置 HC-06蓝牙模块通常被设计为仅支持从设备模式,因此无法像HC-05那样直接作为主设备使用。然而,在某些特定情况下,可以通过修改固件或将多个HC-06模块组合来实现类似的主从通信功能[^1]。 #### 主从模式配置概述 在典型的蓝牙通信场景中,主设备负责发起连接发送命令,而从设备则响应这些请求。对于HC-06模块而言,默认工作于从设备状态,这意味着它等待其他主设备其建立连接。为了模拟主从模式下的双向通信,可以采用以下方法: 1. **硬件准备** - 准备两块Arduino开发板。 - 每块开发板分别连接一个HC-06蓝牙模块。 2. **电路连接** 将每个HC-06模块的TXD引脚连接到对应Arduino的RX引脚上,将RXD引脚连接至TX引脚。同时确保GNDVCC正确供电[^2]。 3. **软件编程** 以下是用于测试两个HC-06模块间简单数据交换的一组示例程序: #### 示例代码:Master Side (主侧) ```cpp #include <SoftwareSerial.h> // 定义软串口针脚 const int rxPin = 10; const int txPin = 11; SoftwareSerial bluetooth(rxPin, txPin); // RX | TX void setup() { Serial.begin(9600); bluetooth.begin(9600); delay(1000); } void loop() { if(Serial.available()) { String data = Serial.readString(); bluetooth.println(data); Serial.print("Sent to Slave: "); Serial.println(data); } } ``` 此段代码定义了一个基于`SoftwareSerial`库的新串行接口以处理蓝牙模块之间的通讯。当通过USB向电脑上传输任何字符串时,该消息会被转发给配对成功的另一个HC-06单元。 #### 示例代码:Slave Side (从侧) ```cpp #include <SoftwareSerial.h> // 定义软串口针脚 const int rxPin = 10; const int txPin = 11; SoftwareSerial bluetooth(rxPin, txPin); // RX | TX void setup(){ Serial.begin(9600); bluetooth.begin(9600); delay(1000); } void loop(){ while(bluetooth.available()){ char c = bluetooth.read(); Serial.write(c); } } ``` 这段代码同样设置了第二个Arduino上的软串口实例接收来自其关联蓝牙组件的信息将接收到的内容打印回计算机终端显示出来。 尽管上述例子展示了基本的数据传递过程,但由于标准版HC-06不具备主动扫描附近可用装置的能力,所以实际应用中的"主机角色"需由外部逻辑或者额外增加的支持自主搜索连结特性的元件承担完成整个流程链路构建的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值