用的是HC05蓝牙模块,用两个arduino板连接,想要实现手机端发送命令来控制继电器的高低电压输入,但是现在的遇到了连接好了之后用下面这段代码,蓝牙连接成功了但是接收不到手机端发送的消息,继电器也用其他的对电源连接了,有没有碰到过这样的问题啊,该怎么解决
```
#include <SoftwareSerial.h> // 引入SoftwareSerial库
SoftwareSerial bluetooth(10, 11); // RX, TX 使用Arduino的第10和第11引脚(或其他可用引脚)
const int relayPin = 7;
// 用来存储命令的临时变量
char command[3] = {0, 0, 0}; // 假设命令最多两个字符加上一个结束符
int commandIndex = 0; // 当前命令的索引
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // 初始化继电器状态为低电平
bluetooth.begin(38400); // 初始化蓝牙模块的波特率为38400
Serial.begin(9600); // 串口监视器波特率设置为9600(可选,用于调试)
// 假设在bluetooth.begin()之后蓝牙已经准备好
Serial.println("Bluetooth is ready"); // 在串口监视器中显示蓝牙已准备好的消息
}
void loop() {
// 检查蓝牙模块是否有数据
if (bluetooth.available() > 0) {
char incomingByte = bluetooth.read();
// 将字符添加到命令缓冲区
if (commandIndex < 2) { // 假设命令是'0'加上一个数字('1'或'2')
command[commandIndex++] = incomingByte;
}
// 检查是否接收到完整的命令
if (commandIndex == 2 && command[0] == '0' && (command[1] == '1' || command[1] == '2')) {
handleRelayCommand(command[1]); // 处理命令
commandIndex = 0; // 重置命令索引
}
}
}
void handleRelayCommand(char commandByte) {
if (commandByte == '1') {
digitalWrite(relayPin, HIGH);
Serial.println("Relay turned ON"); // 显示继电器已打开的提示
} else if (commandByte == '2') {
digitalWrite(relayPin, LOW);
Serial.println("Relay turned OFF"); // 显示继电器已关闭的提示
}
}
```**
-