【问题标题】:HC-05 bluetooth module on Arduino + DebuggingArduino+调试中的HC-05蓝牙模块
【发布时间】:2018-11-04 12:06:31
【问题描述】:

我有点卡在这里。我有一个来自 ebay 的 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终端来测试蓝牙模块是否成功通信。无论出于何种原因,所有 4 个都收到了 Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF: 行,但是当我在终端中输入 1 并将其发送到模块时,LED 不亮。

注意: LED 工作 我很肯定我已经正确连接了所有东西 我的 RX 和 TX 串行线必须正常工作,否则我将无法上传草图。

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

非常感谢!

【问题讨论】:

    标签: bluetooth serial-port arduino


    【解决方案1】:

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

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

    也就是说,如果将 AtMega 芯片用作独立微控制器(例如 DIYduino),则可以使用 Pins 0 and 1 与蓝牙模块进行通信!

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 好的。所以你建议我将蓝牙模块上的 TX 引脚直接连接到它的 RX 引脚,而不是 Arduino,这样我会看到我从终端发出的信回到终端?我猜这是有道理的。感谢您的建议!
      【解决方案3】:

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

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

      1. Adruino 模块
      2. LightBlue Explorer App(ios 10)
      3. HC-05 蓝牙模块(BLE)

      请注意:将您的蓝牙 rx 引脚连接到 adriuno 引脚 9,将蓝牙 tx 引脚连接到 adruino 引脚 10。

      这样就可以使用查看adruino板串口进行调试了。

      #include <SoftwareSerial.h>
      int state = 0;
      SoftwareSerial Bluetooth(10,9);
      int data;
      
      void setup() {
        // put your setup code here, to run once:
        pinMode(4,OUTPUT);
        Serial.begin(9600);
        Bluetooth.begin(9600);
      }
      
      void loop() {
        if(Bluetooth.available() > 0)
        {
          data = Bluetooth.read();
          if(data == '1')
          {
            digitalWrite(4,HIGH);
            Serial.println("LED Turned ON");
          }
          else{
            digitalWrite(4,LOW);
            Serial.println("LED Turned OFF");
          }
          Serial.println(data);
        }
        delay(1000);
      }

      更多信息请参考Bluetooth Module Debugging

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 1970-01-01
        • 2018-02-19
        • 2018-03-10
        • 1970-01-01
        • 2014-06-06
        • 1970-01-01
        • 2020-11-09
        • 1970-01-01
        相关资源
        最近更新 更多