Arduino Uno R3连接HC-03
一、设备清单
Arduino Uno R3
HC-05
电源模块(串口多可以不需要)
二、连接步骤
代码
说明:这里先提供代码是因为我们需要根据硬件设置代码(mySerial.begin)
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX=10, TX=11
void setup() {
Serial.begin(9600); // 电脑串口波特率
mySerial.begin(9600); // 必须与HC-05当前波特率一致
}
void loop() {
// 1. 从电脑串口读取数据,并发送给HC-05
if (Serial.available()) {
char c = Serial.read();
mySerial.write(c);
Serial.write(c);
}
// 2. 从HC-05接收数据,并显示到电脑串口
if (mySerial.available()) {
char c = mySerial.read();
Serial.write(c);
}
}
连接图
HC-05串口连接
- RXD ——> Arduino 11串口(软串口)
- TXD ——> Arduino 12串口(软串口)
- GND ——> GND
- VCC ——> 3.6V~6V
- STATE/EN ——> 需要AT模式时接3.3V/5V(高电平)
三、实现步骤
- 烧录代码
- 设置Arduino IDE
将Arduino IDE 串口监视器设置为换行和回车
- 硬件连接RXD、TXD、VCC、GND
如上图以及文案连接相关串口
- 下载查看蓝牙串口消息辅助app
如果我们想要看到通信的消息,我们需要下载一些辅助app(蓝牙串口、Bluetoothterminal)
- 发送和接收消息
在app上发送消息,可以在电脑的Arduino IDE中的串口监视器中看到信息,相反也一样
四、异常情况
注意:看到这一步的小伙伴如果你已经成功实现了蓝牙通信,那么恭喜你,如果到这一步小伙伴还没成功或是出现一些问题(比如乱码)的小伙伴那么也恭喜你,你和我一样可以深入学习Arduino了 !
先说一些常见的我遇到的问题
- Arduino无法下载程序
步骤一:请检查下载线是否松动,以及IDE是否选择了正确的串口
步骤二:请检查Arduino是否有烧坏,如果不确定,那可以试试步骤三
步骤三:可能由于电脑供电不足导致的,可以尝试给Arduino外接电源,某宝上电源适配器器12V就可以(注意圆孔的哦),外接电源后可再次尝试烧录程序(博主很慢不幸遇到了此情况,希望大家不会上演同样的惨剧)
步骤四:如果步骤三还不行,那大概率是板子废了,这就是悲剧了
注意:如果只是连接HC-05时烧录报错,那么只需要断开RXD、和TXD的连接就可以(每次烧录时都需要如此)
- Arduino与HC-05通信乱码
步骤一:检查IDE的串口监视器波特率是否和代码(Serial.begin)设置的波特率一致
步骤二:使用AT指令查看蓝牙设置的波特率,将STATE/EN同时连接至高电平,然后在设置IDE串口监视器的波特率为代码中设置的Serial.begin的波特率,然后发送AT如果返回OK则表示已经成功将HC-05切换至指令模式,再次发送以下指令查看蓝牙波特率
AT+UART?//预期返回23:17:11.560 -> +UART:9600,0,0(因为默认波特率为9600)
步骤三:检查代码设置的蓝牙波特率(mySerial.begin)是否和HC-05的一致
- Arduino与HC-05一连接串口,乱码会在串口监视器中刷屏
解决方法:如果按照我的设置来不会出现此问题,因为这是使用了硬串口导致的,建议使用软串口
以上就是我在尝试使用HC-05通过连接Arduino进行通信时遇到的问题,如果大家未能解决问题,欢迎在评论区留言