自己攒的小车和机器人,一旦能升级成用手机遥控,成就感直接翻倍。但很多人装蓝牙时会卡在同一处:线明明接对了,手机却搜不到模块,或者连上了车却纹丝不动。HC-05是市面上最便宜也最常用的一颗蓝牙串口模块,今天把它从接线、配对到指令配置的坑一次讲清。
HC-05到底是个什么东西
说人话,它就是一颗"蓝牙转串口"的桥。手机发过来的字节,会原样出现在Arduino的串口上;Arduino往外打的串口数据,也会传回手机。对你写的代码来说,它就像一根会分身的串口线,只是没有线的那份稳定。
正因为它只是透传串口,程序里根本不用知道蓝牙存在——这既是它好用的地方,也埋了不少坑。无线电不是电线,它会掉线、会延迟、会断开,而这些恰恰是很多人没提前想的事。
接线:交叉连接和分压这关先过
HC-05的VCC接Arduino的5V,GND共地,这是最顺的。但注意模块的逻辑电平是3.3V,尤其它的RX脚不扛5V。Arduino的TX输出5V,直接用5V去怼HC-05的RX,用久了会慢慢烧模块,而且很多时候它是"慢慢坏"——还能配对、能发数据,就是静默丢数据或回显乱码,特别难查。
标准做法是TX和RX交叉接(模块的TX接Arduino的RX,模块的RX接Arduino的TX),再在Arduino到模块RX这条线上加一个分压电阻,1k配2k把5V降到3.3V左右。白送两颗电阻,能帮你避开一个最折磨人的故障。
另外建议用SoftwareSerial软串口,把模块接到D10、D11这类脚,别用0和1号脚——那两个脚和USB串口共用,占用它们会让上传程序卡住、串口监视器打架。
配对和连接是两回事,最容易搞混
给小车通上电,模块的灯快速闪烁,就是"等待配对"。在手机的蓝牙设置里搜到HC-05,输入默认配对码1234(少数批次是0000),这就完成了配对。但注意:配对不等于连接!只有当你打开蓝牙串口App、真正点开那个串口之后,链路才算建立,此时模块的灯会从快闪变成慢速双闪。
很多人栽在这:觉得在系统设置里连上了,打开App却找不到设备,于是怀疑模块坏了。其实要先在手机蓝牙设置里配对好,再进App从它自己的列表里选这个模块。两个状态别当成一回事。
AT指令:改名字和踩波特率的坑
想改模块名字、改波特率、设主从,就要进AT指令模式。HC-05进AT模式的办法是:按住板上的按键(也就是把KEY/EN脚拉高)再上电,看到灯变成约2秒闪一次,就说明进AT命令模式了。注意,AT模式下波特率是固定的38400,跟你平时数据模式的9600不是一回事,很多人一进AT模式命令就没反应,往往就是速率没对齐。
常用的几条:AT返回OK表示通了;AT+NAME=MyRobot改名字;AT+PSWD改配对码;AT+UART=9600,0,0改串口参数。指令一般要带回车换行,在串口助手里用文本模式发。改完重新上电才生效。
最后劝一句
HC-05用的是蓝牙经典协议(Classic),只在Android上对普通App开放,iPhone用不了,想用苹果手机控制得换BLE的模块(像HM-10)再配专门的App。装的时候也记住:先烧录好代码、再接蓝牙模块,能少碰很多次莫名报错。
把这些接线、配对、指令三关理顺,你的小车就能真正"听指挥"了。蓝牙这趟水不深,踩过坑一次,后面的机器人遥控都顺了。


交叉接线这个坑太真实了,我刚玩就把TX对TX接,半天连不上,后来才发现得交叉着来。
分压电阻真的是保命项,之前直接拿5V去怼RX,烧了两颗模块才老实加电阻。
补一个实用的:AT模式下波特率固定38400,我一开始用9600发AT半天没反应,卡了一晚上。
“配对和连接是两回事”这句说到点上了,弄懂灯快闪是配对、慢闪是连接,少走好多弯路。
iPhone用户别买HC-05,绕不开的,直接上HM-10这种BLE模块才省事。