HC-05蓝牙模块连接Arduino Mega后无法被PC发现的问题求助
HC-05蓝牙模块连接Arduino Mega后无法被PC发现的问题求助
问题描述
我最近在做一个需要通过蓝牙输入电话信息的项目,把HC-05蓝牙模块连接到Arduino Mega上后,通电状态下电脑的蓝牙设置里完全搜不到这个模块,实在找不到解决方向了!
已完成的操作
- HC-05的TX引脚连接到Arduino Mega的10号引脚
- HC-05的RX引脚通过电压分压模块将5V降至3.3V后,连接到Mega的11号引脚
- 代码中使用
SoftwareSerial库来控制这两个引脚实现串口通信 - 模块通电后LED正常闪烁,但PC始终无法搜索到它
排查与解决建议
嗨,我之前也踩过HC-05搜不到的坑,给你几个实用的排查方向,一步步来:
确认HC-05的工作模式
HC-05有两种核心模式:AT指令配置模式和蓝牙通信广播模式。如果模块LED是慢闪(约2秒一次),说明它处于AT模式,这种模式下模块不会对外广播,自然搜不到;只有LED快闪(每秒数次)才是通信模式。- 如果是慢闪,你可以通过串口发送AT指令切换:比如发送
AT+ORGL恢复出厂设置(默认回到从机通信模式),或者AT+ROLE=0明确设置为从机模式。记得波特率要和模块默认值匹配(大多是9600,少数是38400,可查模块手册)。
- 如果是慢闪,你可以通过串口发送AT指令切换:比如发送
检查接线与供电细节
- 分压电阻要准确:一般用1kΩ和2kΩ的电阻分压,确保HC-05的RX引脚得到稳定的3.3V信号,分压不对会导致串口通信失效,模块无法完成模式切换。
- 供电要足够:HC-05工作时需要几十毫安电流,尽量用外部3.3V电源供电,或者从Mega的3.3V引脚取电(避免用5V直接供电,虽然模块有稳压,但可能不稳定)。
- 别搞反TX/RX:HC-05的TX要接Mega的RX,RX接Mega的TX,接反了串口完全不通,模块等于没被配置。
排查SoftwareSerial的问题
Arduino Mega的SoftwareSerial对部分引脚兼容性一般,波特率不匹配也会出问题:- 把SoftwareSerial的波特率设为模块默认值(比如9600),别随便改。
- 试试换成硬件串口:Mega有多个硬件串口,比如Serial1对应19(TX)和18(RX)引脚,用硬件串口代替SoftwareSerial,排除软件模拟串口的干扰。
PC端蓝牙设置排查
- 确认电脑蓝牙已开启,且没有被其他设备占用。
- 清空蓝牙缓存:Windows可以在设备管理器里卸载蓝牙设备后重启,Mac可以删除蓝牙偏好设置文件,避免旧设备缓存影响搜索。
- 直接搜索模块默认名称“HC-05”,有时候列表里设备太多,手动搜索更容易找到。
测试模块本身是否故障
如果以上都试过还是不行,换个HC-05模块试试,或者用手机蓝牙搜索,排除PC端的问题。要是手机也搜不到,大概率是模块本身或者接线的问题。
备注:内容来源于stack exchange,提问作者KCB Innovator's Club




