在Arduino的+调试HC-05蓝牙模块(HC-05 bluetooth module on Ar

2019-10-19 07:11发布

我有种被困在这里。 我有一个HC-05蓝牙模块 - 从ebay-和我测试它来确保它的工作原理。 我已经上传了以下草图芯片:

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

// 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个接收行Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF:但是当我在终端中输入1,并将其发送到模块,LED不亮。

注:LED的工作,我肯定我的一切有线适当我的RX和TX串行线路必须努力,否则我将无法上传草图。

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

非常感谢!

Answer 1:

感谢@SunGa的环回的想法。 它的工作,所以我可以确认的蓝牙模块处于良好的健康状况。 通过其他论坛阅读,试图理解为什么pin 0不能接收蓝牙模块,我发现这是一个常见的问题发送的串行信号。 它使原来,因为RX和TX是硬连接到USB转板上TTL转换芯片,有时状态Pin 0Pin 1 “被困”,他们不能恰当地使用(这是不幸的!和可怜的工程IMO)。

我是能够成功地发送和通过利用接收数据SoftwareSerial库,并重新映射Pins 10 and 11至RX和TX。

这就是说,如果一个ATMEGA芯片被用作一个独立的微控制器(如DIYduino)则Pins 0 and 1可用于通信,蓝牙模块!

希望这可以帮助别人谁面临着同样的问题



Answer 2:

我不与Arduino的大家耳熟能详。 但可以建议您在HC05引脚和测试仅适用于Android(或PC)终端和HC05之间的通信配置回环连接。 这将弄清楚HC05是否工作或没有。



Answer 3:

我也遇到了同样的问题,发现一个真棒的解决方案。 该解决方案存在的所谓SoftwareSerial.h库”。这个库确实真有奇效,因为它有助于在最重要的事情,‘调试’,你正在使用的应用程序,可以说,它是Android应用或iOS应用。

我已经使用以下安装/设备:

  1. Adruino模块
  2. LightBlue资源管理器应用程序(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); } 

欲了解更多信息,请参阅蓝牙模块调试



文章来源: HC-05 bluetooth module on Arduino + Debugging