当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在机器人、遥控、自动化以及许多其他电子项目中,两块微控制器之间的无线通信非常有用。本项目中,我们将使用两个HC-05蓝牙模块和两个Arduino板,并配置它们进行无线通信。

在机器人、遥控、自动化以及许多其他电子项目中,两块微控制器之间的无线通信非常有用。本项目中,我们将使用两个HC-05蓝牙模块和两个Arduino板,并配置它们进行无线通信。

关键在于通过AT命令将其中一个HC-05设置为主控(Master),另一个作为从机(Slave)。一旦成功配对,主控可以向从机发送指令,而从机则执行相应操作并返回响应。

我们正在构建的内容:

当HC-05与Arduino或手机配合使用时,通常作为从机工作。但在两块Arduino板之间进行通信时,需要将其中一个模块配置为主控(Master)。

基本结构如下:

Arduino主控 → HC-05主控 → 无线蓝牙链路 → HC-05从机 → Arduino从机

在使用模块进行通信前,我们首先通过Arduino IDE的串口监视器来配置其角色及配对参数。

将HC-05连接至Arduino UNO进行配置

HC-05 通过 UART 串行接口与 Arduino 进行通信。由于 Arduino UNO 的硬件串口引脚通常用于编程和串口监视器,因此使用引脚 2 和 3 与蓝牙模块进行软件串行通信。

由于蓝牙模块的 RX 输入不耐受 5V 电压,因此在 HC-05 的 RXD 线路上需要使用分压电路。1kΩ 和 2kΩ 的电阻可将 Arduino 的 5V 信号降至约 3.3V,再传入 RXD。

蓝牙模块使用串行UART接口,但Arduino的串行接口用于代码上传,因此我们将引脚2和引脚3重新用作Rx和Tx引脚,以便与蓝牙模块通信。

由于蓝牙模块的Rx引脚不耐5V电压,因此使用1kΩ和2kΩ电阻组成的分压电路,将Rx引脚的电压降低至3.3V。

模块的Vcc和Gnd引脚分别连接到Arduino的5V和Gnd引脚。

更多详细信息请参考下方电路图:

进入 AT 命令模式

当 HC-05 连接到 Arduino 后,可通过 Arduino IDE 的串口监视器从电脑上对模块进行配置。

首先必须将模块设置为 AT 命令模式。一旦进入该模式,便可通过串行连接发送命令,以读取或修改其角色、名称、密码和配对地址等设置。

重要的是要分别配置两个模块:一个作为主控(Master),另一个作为从机(Slave)。

配置从机 HC-05

对于从机模块,需将 HC-05 配置为从机模式。

从机会等待主控设备的连接。一旦主控板建立蓝牙连接,两个Arduino板之间即可进行串行数据交换。

使用HC-05的AT命令接口在模块恢复至正常通信模式前,配置这些参数。

配置主控HC-05

第二个HC-05被设置为主控端。

主控端负责与从设备建立蓝牙连接。其配置应指向从设备模块的地址,以便两个模块能够自动建立连接。

在主控和从设备的设置完成后,两个模块均可连接到各自的Arduino板上。

HC-05 AT命令

HC-05提供AT命令用于配置其运行参数。这些命令可用于设置和检查以下值:

- 蓝牙设备名称

- 模块角色

- 配对密码

- 蓝牙地址

- 连接设置

具体命令需在HC-05处于AT命令模式时通过串口监视器输入。

主从Arduino通信

当两个HC-05模块完成配置并成功配对后,实际的无线通信便能顺利进行。

主控Arduino通过其HC-05发送预设的命令。蓝牙连接将数据传输到从机HC-05,再由从机HC-05通过串行接口传送给从机Arduino。

从机Arduino随后可以处理接收到的命令并执行所需操作,同时也可以通过相同的蓝牙连接将数据返回。

完整的数据传输路径为:

主Arduino → 主HC-05 → 蓝牙模块 → 从HC-05 → 从Arduino

而响应的路径则为:

从Arduino → 从HC-05 → 蓝牙模块 → 主HC-05 → 主Arduino

这种方案使得两个Arduino板之间无需物理连接即可实现串行数据交换。

两块板均采用上述相同的HC-05与Arduino的接线方式。

主控板接线

从控板接线

硬件连接完成后,即可上传对应的主控和从控Arduino程序。

通信原理如何工作?

本项目使用HC-05模块作为无线串行通信链路。

主Arduino生成指令并发送至其蓝牙模块,主HC-05通过无线方式将数据传送给配对的从HC-05。从模块再将接收到的数据转发给从Arduino。

从Arduino检查接收到的指令并作出相应回应。如果需要响应,它会通过蓝牙模块返回主Arduino。

因此,该系统可作为无线Arduino项目的简单基础,用于实现一个控制器与另一个控制器之间的通信。

最终思考

使用两个HC-05模块是实现Arduino板之间无线串行通信的简单方法。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭