首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙HC-05停止接收数据

蓝牙HC-05停止接收数据
EN

Stack Overflow用户
提问于 2019-03-14 15:32:05
回答 1查看 287关注 0票数 0

我遇到了Arduino Uno和HC-05蓝牙的问题.如果有人能帮我,我会很感激的。

我的问题是:成功地将程序上传到Arduino Uno,并将命令从机器人arm应用程序(由安卓工作室创建)发送到蓝牙HC-05,起初Hc-05接收数据时没有任何问题,但在移动到手臂后,HC-05停止接收来自应用程序的数据,以及Arduino上的Tx & Rx LED无法工作。如果我重新启动Arduino,它一开始就会工作,然后也会发生同样的问题。

代码语言:javascript
复制
#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);
    }
  }
}

我在等你的消息。

诚挚的问候。

EN

回答 1

Stack Overflow用户

发布于 2020-01-30 07:32:01

我希望现在提供帮助还不算太晚:d您的代码很好(假设您的应用程序也是正确的),我认为问题在硬件中。我认为在机器人手臂电机的运动中,arduin上有一个显著的压降,这就是连接丢失的原因。尝试将HC-05连接到单独的电源(VCC - 3.3-5V,HC-05 GND - Arduino GND - GND外部电源),我认为您的问题将得到解决。我想知道你用哪一种机器人手臂和阿迪诺集成?我发现了一个有很多机器人手臂的站点,但是没有一个和Arduino兼容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55166449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档