Hello All,
I'm having an issue with sending information from one Nano to another using the HC05 bluetooth module. I had it working but somehow deleted my code so I re-wrote it. I got the modules talking and have good two way communication, but when I press a button on the SLAVE device, a relay is supposed to close on the MASTER device but it's not.
On the MASTER device there is a reed switch which is supposed to turn an LED from green to red when the magnets are separated. This part is working fine. Can someone please take a look at my code and see what I'm getting wrong? Thanks in advance.
MASTER CODE
#include <SoftwareSerial.h>
#define redLed A0
#define greenLed A1
#define blueLed A2
SoftwareSerial mySerial(3, 2); //Rx, Tx
int GarSwitch = 4;
int relay = 5;
void setup() {
Serial.begin(115200);
mySerial.begin(38400);
pinMode(GarSwitch, INPUT_PULLUP);
pinMode(relay, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
digitalWrite(redLed, LOW);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, LOW);
}
void loop() {
// Sending
int Gar1 = digitalRead(GarSwitch);
if (Gar1 == HIGH) {
mySerial.print('a');
}
// Receiving
if (mySerial.available())
Serial.write(mySerial.read());
if (mySerial.read() == 'b') {
digitalWrite(relay, LOW);
delay(25);
} else {
digitalWrite(relay, HIGH);
}
}
SLAVE CODE
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2); //Rx, Tx
int redLed = 7;
int greenLed = 6;
int blueLed = 5;
int Button = 4;
void setup() {
Serial.begin(115200);
mySerial.begin(38400);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(Button, INPUT_PULLUP);
}
void loop() {
// Receiving
if (mySerial.available())
Serial.write(mySerial.read());
if (mySerial.read() == 'a') {
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
delay(1);
} else {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
}
// Sending
int button = digitalRead(Button);
if (button == LOW) {
mySerial.print('b');
Serial.print('b');
digitalWrite(greenLed, LOW);
digitalWrite(redLed, LOW);
digitalWrite(blueLed, HIGH);
} else {
digitalWrite(blueLed, LOW);
digitalWrite(greenLed, LOW);
digitalWrite(redLed, LOW);
}
}

