Bluetooth Arduino和x2B上的HC-05蓝牙模块;调试

Bluetooth Arduino和x2B上的HC-05蓝牙模块;调试,bluetooth,serial-port,arduino,Bluetooth,Serial Port,Arduino,我被困在这里了。我有一个HC-05蓝牙模块-来自易趣-我正在测试它,以确保它的工作。我已将以下草图上传至芯片: ////////////////////////////////////////////////////////////////////////////////// // REMIXED BY: TECHBITAR (HAZIM BITAR) // LICENSE: PUBLIC DOMAIN // DATE: MAY 2, 2012 // CONTACT: techbitar at

我被困在这里了。我有一个HC-05蓝牙模块-来自易趣-我正在测试它,以确保它的工作。我已将以下草图上传至芯片:

//////////////////////////////////////////////////////////////////////////////////

// REMIXED BY: TECHBITAR (HAZIM BITAR)
// LICENSE: PUBLIC DOMAIN
// DATE: MAY 2, 2012
// CONTACT: techbitar at gmail dot com

char INBYTE;
int  LED = 13; // LED on pin 13

void setup() {
  Serial.begin(9600); 
  pinMode(LED, OUTPUT);
}

void loop() {
  Serial.println("Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF:");
  while (!Serial.available());   // stay here so long as COM port is empty   
  INBYTE = Serial.read();        // read next available byte
  if( INBYTE == '0' ) digitalWrite(LED, LOW);  // if it's a 0 (zero) tun LED off
  if( INBYTE == '1' ) digitalWrite(LED, HIGH); // if it's a 1 (one) turn LED on
  delay(50);
}
我在android上使用了三种不同的蓝牙终端,在WIN7上使用了TeraTerm终端来测试blutooth模块是否成功通信。无论出于何种原因,所有4个接收到线路
按1打开Arduino引脚13 LED,或按0关闭:
但当我在终端中输入1并将其发送到模块时,LED不会打开

注: LED的工作原理 我肯定我已经把所有的东西都接好了 我的RX和TX串行线必须工作,否则我将无法上传草图

HC-05是否可能不工作且无法接收信息?否则我可以做什么来测试


非常感谢

我对Arduino一点也不熟悉。但可以建议您在HC05引脚配置环回连接,并仅测试Android(或PC)终端和HC05之间的通信。这将确定HC05是否正常工作。

感谢@SunGa的回环想法。它工作正常,因此我可以确认蓝牙模块处于良好状态。阅读其他论坛,试图了解为什么
引脚0
无法接收蓝牙模块发送的串行信号,我发现这是一个常见问题。事实证明,由于RX和TX硬连接到板上的USB到TTL转换器芯片,因此,
引脚0
引脚1
的状态有时会“卡住”,无法正确使用(这是不幸的!而且是糟糕的工程设计)

通过使用
SoftwareSerial
库,我能够成功地发送和接收数据 并将插脚10和11重新映射到RX和TX

也就是说,如果AtMega芯片用作独立微控制器(如DIYduino),则
引脚0和1可用于与蓝牙模块通信


希望这能帮助其他面临同样问题的人

我遇到了同样的问题,并找到了一个很棒的解决方案。该解决方案以名为SoftwareSerial.h.的库的形式存在。该库确实创造了奇迹,因为它在最重要的方面有助于“调试”您正在使用的应用程序,可能是android应用程序或ios应用程序

我使用了以下设置/装置:

  • 阿德鲁诺模块
  • LightBlue浏览器应用程序(ios 10)
  • HC-05蓝牙模块(BLE)
  • 请注意:将您的蓝牙rx引脚连接至adriuno引脚9,将蓝牙tx引脚连接至adriuno引脚10

    通过这种方式,您可以使用see adruino板串行接口进行调试

    #包括
    int state=0;
    软件串行蓝牙(10,9);
    int数据;
    无效设置(){
    //将安装代码放在此处,以便运行一次:
    pinMode(4,输出);
    Serial.begin(9600);
    蓝牙开始(9600);
    }
    void循环(){
    如果(Bluetooth.available()>0)
    {
    data=Bluetooth.read();
    如果(数据='1')
    {
    数字写入(4,高);
    Serial.println(“LED开启”);
    }
    否则{
    数字写入(4,低);
    Serial.println(“LED关闭”);
    }
    Serial.println(数据);
    }
    延迟(1000);
    
    }
    好的。所以你建议我将蓝牙模块上的TX引脚直接连接到它的RX引脚,而不是Arduino,这样我就可以在终端中看到我从终端发送的信件了?我想这是有道理的。谢谢你的建议!