You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HC-05蓝牙控制Arduino舵机转动后回位、板卡断连问题咨询

故障现象
  • 发送HC-05蓝牙控制指令后,舵机仅短暂转动就立刻回到初始位置
  • PC为Arduino供电时系统会发出硬件断开提示音,更换充电宝供电后故障没有消失
现有配置

测试代码

#include <Servo.h>
Servo myservo;
int pos = 0;
char data = 0;                
void setup() {
  myservo.attach(9);
  Serial.begin(9600);
}
void loop(){
  if(Serial.available() > 0){ 
    data = Serial.read();             
    if(data == 'F'){        
//         for (pos = 0; pos <= 180; pos += 1) even this line dosent work
         myservo.write(180);
         delay(1);
        }}
    else if(data == 'B'){     
//       for (pos = 180; pos >= 0; pos -= 1)  even this line dosent work
         myservo.write(0); 
         delay(1);
        }}

接线方式

  • 舵机:红色电源线接Arduino 5V引脚、橙色信号线接9号数字引脚、棕色GND线接Arduino GND(此前3.3V供电测试无法驱动舵机)
  • HC-05蓝牙模块:5V引脚接Arduino 5V、GND引脚接Arduino GND、RX引脚接Arduino TX引脚、TX引脚接Arduino RX引脚
故障根因
  1. 代码逻辑错误:原代码大括号匹配错位,else if(data == 'B')判断块被放到了if(Serial.available() > 0)的判断范围外,执行逻辑完全混乱。串口读到'F'指令执行完180度输出后,下一次循环检测不到新的串口数据时,会错误触发0度输出,直接把舵机拉回初始位。另外代码中仅设置1ms延时,完全不足以支撑舵机完成转动动作。
  2. 供电过载:常规舵机转动峰值电流可达500mA以上,堵转时电流更高,Arduino板载5V引脚无论来自PC USB还是充电宝输入,最大输出电流都无法同时满足舵机和HC-05模块的峰值需求,一旦舵机启动就会拉低整体供电电压,触发板载过流保护导致硬件断连,这也是PC出现断开提示音、更换充电宝也无法解决问题的核心原因。
  3. 串口接线隐患:HC-05直连Arduino硬件串口的TX/RX引脚,会在代码上传阶段占用串口通道,容易导致上传失败,虽不是本次故障的直接诱因,但属于常规接线问题。
修复方案
  • 修正代码逻辑,调整大括号匹配关系,给舵机留足转动等待时间,修正后参考代码如下:
#include <Servo.h>
Servo myservo;
char data = 0;                
void setup() {
  myservo.attach(9);
  Serial.begin(9600); // 需和HC-05模块实际配置的波特率保持一致,HC-05默认波特率多为9600
  myservo.write(0); // 上电初始化舵机到初始位置
}
void loop(){
  if(Serial.available() > 0){ 
    data = Serial.read();             
    if(data == 'F'){        
      myservo.write(180);
      delay(500); // 根据舵机实际转速调整延时,保证舵机转到目标角度
    }
    else if(data == 'B'){     
      myservo.write(0); 
      delay(500);
    }
  }
}
  • 调整供电方案:禁止舵机从Arduino板载5V引脚取电,单独使用输出能力1A以上的5V独立电源为舵机供电,必须将舵机电源的GND与Arduino、HC-05模块的GND连接共地,否则控制信号无法正常传输。HC-05工作电流仅几十毫安,可继续使用Arduino板载5V供电。
  • 接线优化:上传Arduino代码前,先拔掉HC-05连接的TX/RX杜邦线,等代码上传完成后再接回,避免串口占用导致上传失败。如果后续出现蓝牙通信乱码,优先检查HC-05实际波特率是否与代码中串口初始化的参数一致。

内容的提问来源于stack exchange,提问作者Akshit Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:21:55