蓝牙HC-05停止接收数据

时间:2019-03-14 15:32:06

标签: bluetooth arduino servo

我遇到了Arduino Uno和HC-05蓝牙问题。 如果有人可以帮助我,我将不胜感激。

我的问题是:在将程序成功上传到Arduino Uno并将命令(由android studio创建的机器人手臂应用)发送到蓝牙HC-05之后,首先Hc-05收到了数据没有任何问题,但经过一些动作后,HC-05停止从应用程序接收数据,并且Arduino上的Tx和Rx LED均不起作用。如果我重新启动Arduino,它将首先工作,然后会发生同样的问题。

#include <Servo.h>
Servo arm1;
Servo arm2;
Servo arm3;
Servo arm4;
Servo arm5;

char c = ' ';
String strData = "";

void setup() {

  arm1.attach(3);
  arm2.attach(5);
  arm3.attach(6);
  arm4.attach(9);
  arm5.attach(10);
  arm1.write(0);
  arm2.write(0);
  arm3.write(0);
  arm4.write(0);
  arm5.write(90);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    while (Serial.available() > 0) {
      c = ((byte)Serial.read());
      if (c == '?') {
        String strDegree = strData.substring(6, strData.length());
        int intDegree = strDegree.toInt();
        if(strData.indexOf("arm1") >= 0)
          arm1.write(intDegree);
        if(strData.indexOf("arm2") >= 0)
          arm2.write(intDegree);
        if(strData.indexOf("arm3") >= 0)
          arm3.write(intDegree);
        if(strData.indexOf("arm4") >= 0)
          arm4.write(intDegree);
        if(strData.indexOf("arm5") >= 0)
          arm5.write(intDegree);    
        Serial.println(strData);
        strData = "";
        break;
      }
      else {
        strData += c;
      }
      delay(1);
    }
  }
}

我正在等待听到您的消息。
最好的问候。

1 个答案:

答案 0 :(得分:0)

我希望为时不晚:D 您的代码是好的(假设您拥有的应用程序也是正确的) 我认为问题出在硬件上。我认为在机械臂电机运动期间,arduin上存在明显的电压降,这就是失去连接的原因。 尝试将HC-05连接到单独的电源(VCC-3.3-5V,HC-05 GND-Arduino GND-GND外部电源),我想您的问题将得到解决。 我想知道您用于与Arduino集成的机械臂吗?我发现site的机械手臂很多,但都没有与Arduino兼容。