Below is the simple arduino sketch thanks for looking into this.
#define relay1a 3
#define relay1b 2
#define button 4
#define SIG_R_1 5
#define SIG_G_1 6
#define SIG_R_2 7
#define SIG_G_2 8
#define SIG_MG_1 9
#define SIG_MY_1 10
int buttonState;
int lastButtonState = LOW;
int flag = 0;
unsigned long lastDebounceTime = 0; //last time the pin was toggled,
+used to keep track of time
unsigned long debounceDelay = 100; //the debounce time which user s
+ets prior to run
void setup() {
Serial.begin(9600);
pinMode(relay1a, OUTPUT);
pinMode(relay1b, OUTPUT);
pinMode(SIG_R_1, OUTPUT);
pinMode(SIG_G_1, OUTPUT);
pinMode(SIG_R_2, OUTPUT);
pinMode(SIG_G_2, OUTPUT);
pinMode(SIG_MG_1, OUTPUT);
pinMode(SIG_MY_1, OUTPUT);
pinMode(button, INPUT);
// SET RELAYS
digitalWrite(relay1a, LOW);
digitalWrite(relay1b, HIGH);
digitalWrite(SIG_R_1, LOW);
digitalWrite(SIG_G_1, HIGH);
digitalWrite(SIG_R_2, HIGH);
digitalWrite(SIG_G_2, LOW);
digitalWrite(SIG_MG_1, HIGH);
digitalWrite(SIG_MY_1, LOW);
delay(500);
digitalWrite(relay1a, HIGH);
digitalWrite(relay1b, LOW);
digitalWrite(SIG_R_1, HIGH);
digitalWrite(SIG_G_1, LOW);
digitalWrite(SIG_R_2, LOW);
digitalWrite(SIG_G_2, HIGH);
digitalWrite(SIG_MG_1, LOW);
digitalWrite(SIG_MY_1, HIGH);
delay(500);
digitalWrite(relay1a, LOW);
digitalWrite(relay1b, HIGH);
digitalWrite(SIG_R_1, LOW);
digitalWrite(SIG_G_1, HIGH);
digitalWrite(SIG_R_2, HIGH);
digitalWrite(SIG_G_2, LOW);
digitalWrite(SIG_MG_1, HIGH);
digitalWrite(SIG_MY_1, LOW);
delay(500);
digitalWrite(relay1a, HIGH);
digitalWrite(relay1b, LOW);
digitalWrite(SIG_R_1, HIGH);
digitalWrite(SIG_G_1, LOW);
digitalWrite(SIG_R_2, LOW);
digitalWrite(SIG_G_2, HIGH);
digitalWrite(SIG_MG_1, LOW);
digitalWrite(SIG_MY_1, HIGH);
delay(500);
digitalWrite(relay1a, HIGH);
digitalWrite(relay1b, HIGH);
digitalWrite(SIG_R_1, LOW); // RED MAIN OFF
digitalWrite(SIG_G_1, HIGH); // GREEN MAIN ON
digitalWrite(SIG_R_2, HIGH); // RED SIDING ON
digitalWrite(SIG_G_2, LOW); // GREEN SIDING OFF
digitalWrite(SIG_MG_1, HIGH); // GREEN MAIN ON
digitalWrite(SIG_MY_1, LOW); // YELLOW MAIN OFF
} // END SETUP
void loop() {
int reading = digitalRead(button);
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis()-lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == HIGH) {
if (flag == 0) {
digitalWrite(SIG_R_1, HIGH);
digitalWrite(SIG_G_1, LOW);
digitalWrite(SIG_R_2, LOW);
digitalWrite(SIG_G_2, HIGH);
digitalWrite(SIG_MG_1, LOW);
digitalWrite(SIG_MY_1, HIGH);
digitalWrite(relay1a, LOW); // ON
delay(50);
digitalWrite(relay1a, HIGH); // OFF
flag = 1;
Serial.println("BONE\r");
//ledState = !ledState;
} // IF FLAG 0
else if (flag == 1){
digitalWrite(SIG_R_1, LOW);
digitalWrite(SIG_G_1, HIGH);
digitalWrite(SIG_R_2, HIGH);
digitalWrite(SIG_G_2, LOW);
digitalWrite(SIG_MG_1, HIGH);
digitalWrite(SIG_MY_1, LOW);
digitalWrite(relay1b, LOW); // ON
delay(50);
digitalWrite(relay1b, HIGH); // OFF
flag = 0;
Serial.println("BTWO");
} // IF FLAG TWO
} // IF BUTTON STATE
} // IF READING
} // IF MILLIS
lastButtonState = reading;
// TEST SERIAL
if(Serial.available() > 0) {
int in = Serial.read(); // PERL TEST
switch(in) {
case '1':
digitalWrite(SIG_R_1, HIGH);
digitalWrite(SIG_G_1, LOW);
digitalWrite(SIG_R_2, LOW);
digitalWrite(SIG_G_2, HIGH);
digitalWrite(SIG_MG_1, LOW);
digitalWrite(SIG_MY_1, HIGH);
digitalWrite(relay1a, LOW); // ON
delay(50);
digitalWrite(relay1a, HIGH); // OFF
break;
case '2':
digitalWrite(SIG_R_1, LOW);
digitalWrite(SIG_G_1, HIGH);
digitalWrite(SIG_R_2, HIGH);
digitalWrite(SIG_G_2, LOW);
digitalWrite(SIG_MG_1, HIGH);
digitalWrite(SIG_MY_1, LOW);
digitalWrite(relay1b, LOW); // ON
delay(50);
digitalWrite(relay1b, HIGH); // OFF
break;
} // END SWITCH
} // END SERIAL
// END TEST SERIAL
} // END LOOP
|