Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino HC-05蓝牙模块远距离工作不正常_Arduino_Bluetooth_Arduino Uno_Relay_Hc 05 - Fatal编程技术网

Arduino HC-05蓝牙模块远距离工作不正常

Arduino HC-05蓝牙模块远距离工作不正常,arduino,bluetooth,arduino-uno,relay,hc-05,Arduino,Bluetooth,Arduino Uno,Relay,Hc 05,我已经开始学习arduino,刚买了一个bluetooth模块HC-05。从我买的地方,它说它的射程约为10米。我以下面描述的方式与arduino建立了hc-05连接 我使用它作为一个默认配置的从机,9600波特率和HC-05名称,引脚1234 GND of HC05 -> GND of `arduino` VCC of HC05 -> 5V of `arduino` TX of HC05 -> RX of `arduino` RX of HC05 -> TX of `a

我已经开始学习
arduino
,刚买了一个
bluetooth
模块HC-05。从我买的地方,它说它的射程约为10米。我以下面描述的方式与arduino建立了hc-05连接

我使用它作为一个默认配置的从机,9600波特率和HC-05名称,引脚1234

GND of HC05 -> GND of `arduino`
VCC of HC05 -> 5V of `arduino`
TX of HC05 -> RX of `arduino`
RX of HC05 -> TX of `arduino` via voltage divider network 2k---|---1k
下面是我的
arduino
代码

#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX | TX
// Connect the HC-05 TX to Arduino pin 2 RX.
// Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider.

int pin = 13;
char c = ' ';

void setup()
{
 Serial.begin(9600);
 Serial.println("Arduino is ready");
 pinMode(pin,OUTPUT);
 
 // HC-05 default serial speed for communication mode is 9600
 BTserial.begin(9600);
 Serial.println("BTserial started at 9600");
}

void loop()
{
  if (BTserial.available()>0){
    c = BTserial.read();
    Serial.println(c);
    switch (c){
      case '1' : 
        digitalWrite(pin,HIGH); 
        break;
      case '2' : 
        digitalWrite(pin,LOW); 
        break;
      default: break;
      
    }
  }
}
#包括
软件串行BTserial(2,3);//RX | TX
//将HC-05 TX连接至Arduino针脚2 RX。
//通过分压器将HC-05 RX连接至Arduino引脚3 TX。
int引脚=13;
字符c='';
无效设置()
{
Serial.begin(9600);
Serial.println(“Arduino准备就绪”);
引脚模式(引脚,输出);
//HC-05通信模式的默认串行速度为9600
BTserial.begin(9600);
Serial.println(“BTserial从9600开始”);
}
void循环()
{
如果(BTserial.available()>0){
c=BTserial.read();
序列号println(c);
开关(c){
案例“1”:
数字写入(引脚,高);
打破
案例“2”:
数字写入(引脚,低电平);
打破
默认:中断;
}
}
}
发生在我身上的事情如下:

  • 当我给模块通电时,我能够用手机发现它,但只有当我将手机放在离模块很近的位置时。如果我离开HC05模块,例如3-4英尺,我无法发现它
  • 2.连接后(手机靠近模块时),我可以向手机发送数据,但如果我离开手机,只需几步,我就无法发送数据,并自动断开与手机的连接。另外,如果我改变天线的方向,即使这样也不会发生通信

    我的目的是在这个模块和继电器的帮助下控制我家的灯光和电视。但是HC05到目前为止是无用的。我希望我能给它编码、接线、挂在墙上,并与andoird应用程序互动

    这样的事情会发生吗?或者我模块的天线有问题


    谢谢。

    模块周围还有什么?也许有什么东西干扰了它。如果您将带有HC-05的Arduino设置移动到另一个位置,它的行为是否与此相同?你有没有试过与其他客户机连接,比如笔记本电脑?为什么Rx是通过分压器连接的?因为HC05 Rx是一个逻辑3.3V。我在房间中央的任何地方都试过,拿得更高。唯一剩下的就是在操场上带孩子出去玩。