在 Arduino Mega 上使用蓝牙触发继电器时遇到问题

trouble triggering relay with Bluetooth on an Arduini Mega

我打算做一个蓝牙控制的继电器。但是我一直在用我的蓝牙 entries.The 触发继电器时遇到问题 我写在 phone 上的数据显示在串行监视器中,但我无法关闭继电器或 on.i 正在使用单通道继电器模块和HC-06蓝牙模块。 有人可以告诉我问题是什么吗?这真让我抓狂。我的蓝牙模块分别连接到 TX 和 RX,我的继电器连接到我的 arduino mega 的引脚 13。

                                   Thank You in advance!
#include <SoftwareSerial.h>
SoftwareSerial bt(1,0);
int RelayStateOn =0;

void setup() {
bt.begin(9600);

pinMode(13,OUTPUT);
}

char val=bt.read();

void loop() {

if(bt.available())  {
  bt.println(val);
  }

if(val==1)  {
  digitalWrite(13,HIGH);
  }
else if(val==0) {
  digitalWrite(13,LOW);
  }
} 

首先,您没有在任何地方调用循环中的 bt 进行读取。您在全局范围内调用了 bt.read() ,因此 val 获得了一个在任何内容准备好读取之前已读取的值。所以它很可能得到-1。

在调用 print 之前,您还调用了 avaialable,这意味着您不了解 available 的用途。它告诉是否有更多可供阅读。因此,这应该围绕循环中的行,您要添加的是从 bt 读取的,而不是打印到它的行。

首先,将 bt.println(val) 更改为 val = bt.read()。