在 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()。
我打算做一个蓝牙控制的继电器。但是我一直在用我的蓝牙 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()。