Hi
I have the following code working on a Arduino Mega communicating with HC-06 bluetooth and can control my 8 relay board exactly as I would like to. In order to doe this I am using the RoboRemo app on an android device and have effectivley made the butons momentary. The only problem I have which is a major one for me is when I disconnect the bluetooth the relay board puts Relays 1,3,5,7 on when I am infact looking to have all relays off on exit. Does anyone have any suggestions please?.
Thanks
Andy
#include <Arduino.h>
int state;
void setup() {
Serial.begin(9600);
Serial.flush();
/////////////////////////////////////Set Digital Pins as Outputs //////////////////////////////////////////
#define RELAY1 2
#define RELAY2 3
#define RELAY3 4
#define RELAY4 5
#define RELAY5 6
#define RELAY6 7
#define RELAY7 8
#define RELAY8 9
{
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
pinMode(RELAY5, OUTPUT);
pinMode(RELAY6, OUTPUT);
pinMode(RELAY7, OUTPUT);
pinMode(RELAY8, OUTPUT);
}
/////////////////////////////////////Set State of Pins all to LOW (1)////////////////////////////////////
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
digitalWrite(9, 1);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
{
{
if (Serial.available())
state = Serial.read();
}
////////////////////////////////// Downhill Putt UP Direction ///////////////////////////////////////////
if (state == 'A') {
digitalWrite(RELAY1, 0);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY3, 0);
digitalWrite(RELAY4, 1);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'a') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 1);
}
////////////////////////////////// Downhill Putt DOWN Direction //////////////////////////////////////////
if (state == 'B') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 0);
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 0);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'b') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 1);
}
////////////////////////////////// Uphill Putt UP Direction //////////////////////////////////////////////
if (state == 'C') {
digitalWrite(RELAY5, 0);
digitalWrite(RELAY6, 1);
digitalWrite(RELAY7, 0);
digitalWrite(RELAY8, 1);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'c') {
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 1);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 1);
}
///////////////////////////////// Uphill Putt DOWN Direction ////////////////////////////////////////////
if (state == 'D') {
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 0);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 0);
}
/////////////////////////////////////////////// STOP /////////////////////////////////////////////////////
else if (state == 'd') {
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 1);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 1);
}
////////////////////////////////// Left To Right Putt UP Direction /////////////////////////////////////////
if (state == 'E') {
digitalWrite(RELAY1, 0);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY7, 0);
digitalWrite(RELAY8, 1);
}
////////////////////////////////////////////// STOP ///////////////////////////////////////////////////////
else if (state == 'e') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 1);
}
////////////////////////////////// Left To Right Putt DOWN Direction //////////////////////////////////////
if (state == 'F') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 0);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 0);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'f') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 1);
}
////////////////////////////////// Right To Left Putt UP Direction ///////////////////////////////////////
if (state == 'G') {
digitalWrite(RELAY3, 0);
digitalWrite(RELAY4, 1);
digitalWrite(RELAY5, 0);
digitalWrite(RELAY6, 1);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'g') {
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 1);
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 1);
}
////////////////////////////////// Right To Left Putt DOWN Direction /////////////////////////////////////
if (state == 'H') {
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 0);
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 0);
}
/////////////////////////////////////////////// STOP /////////////////////////////////////////////////////
else if (state == 'h') {
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 1);
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 1);
}
////////////////////////////////// Double Break Right To Left Putt UP Direction //////////////////////////
if (state == 'I') {
digitalWrite(RELAY3, 0);
digitalWrite(RELAY4, 1);
digitalWrite(RELAY7, 0);
digitalWrite(RELAY8, 1);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'i') {
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 1);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 1);
}
////////////////////////////////// Double Break Right To Left Putt DOWN Direction ////////////////////////
if (state == 'J') {
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 0);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 0);
}
/////////////////////////////////////////////// STOP /////////////////////////////////////////////////////
else if (state == 'j') {
digitalWrite(RELAY3, 1);
digitalWrite(RELAY4, 1);
digitalWrite(RELAY7, 1);
digitalWrite(RELAY8, 1);
}
////////////////////////////////// Double Break Left To Right UP Direction ///////////////////////////////
if (state == 'K') {
digitalWrite(RELAY1, 0);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY5, 0);
digitalWrite(RELAY6, 1);
}
////////////////////////////////////////////// STOP //////////////////////////////////////////////////////
else if (state == 'k') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 1);
}
////////////////////////////////// Double Break Left To Right UP Direction ///////////////////////////////
if (state == 'L') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 0);
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 0);
}
/////////////////////////////////////////////// STOP /////////////////////////////////////////////////////
else if (state == 'l') {
digitalWrite(RELAY1, 1);
digitalWrite(RELAY2, 1);
digitalWrite(RELAY5, 1);
digitalWrite(RELAY6, 1);
}
delay(100);
}
}