// Relay Control // set pin numbers for Cameras: const int RC25 = 31; // Camera Relay 25 Yards const int RC50 = 32; // Camera Relay 50 Yards const int RC75 = 33; // Camera Relay 75 Yards const int RC100 = 34; // Camera Relay 100 Yards // set pin numbers for Lights: const int RL25 = 35; // Light Relay 25 Yards const int RL50 = 36; // Light Relay 50 Yards const int RL75 = 37; // Light Relay 75 Yards const int RL100 = 38; // Light Relay 100 Yards // set pin numbers for ABB Ref: const int ABB0 = 39; // ABB Ref Relay 0 Yards const int ABB25 = 40; // ABB Ref Relay 25 Yards const int ABB50 = 41; // ABB Ref Relay 50 Yards const int ABB75 = 42; // ABB Ref Relay 75 Yards const int ABB100 = 43; // ABB Ref Relay 100 Yards // set pin numbers for Selector Switch Inputs: const int SS0 = 2; // Selector Switch 0 Yards const int SS25 = 3; // Selector Switch 25 Yards const int SS50 = 4; // Selector Switch 50 Yards const int SS75 = 5; // Selector Switch 75 Yards const int SS100 = 6; // Selector Switch 100 Yards // variables will change: int SS0State = 0; // variable for reading the Selector Switch status int SS25State = 0; int SS50State = 0; int SS75State = 0; int SS100State = 0; void setup() { // initialize the Camera Relay pins as an outputs: pinMode(RC25, OUTPUT); pinMode(RC50, OUTPUT); pinMode(RC75, OUTPUT); pinMode(RC100, OUTPUT); // initialize the Light Relay pins as an outputs: pinMode(RL25, OUTPUT); pinMode(RL50, OUTPUT); pinMode(RL75, OUTPUT); pinMode(RL100, OUTPUT); // initialize the ABB Ref Relay pins as an outputs: pinMode(ABB0, OUTPUT); pinMode(ABB25, OUTPUT); pinMode(ABB50, OUTPUT); pinMode(ABB75, OUTPUT); pinMode(ABB100, OUTPUT); // initialize the Selector Switch pins as an Inputs: pinMode(SS0, INPUT); pinMode(SS25, INPUT); pinMode(SS50, INPUT); pinMode(SS75, INPUT); pinMode(SS100, INPUT); } void loop() { // read the state of the Selector Switch value: SS0State = digitalRead(SS0); SS25State = digitalRead(SS25); SS50State = digitalRead(SS50); SS75State = digitalRead(SS75); SS100State = digitalRead(SS100); // Selector Switch Logic: // Check 0 Yard Selection: if (SS0State == HIGH) { // turn All Lights Off and All Cameras OFF and turn on 0 Yard ABB Ref: digitalWrite(RC25, LOW); digitalWrite(RC50, LOW); digitalWrite(RC75, LOW); digitalWrite(RC100, LOW); digitalWrite(RL25, LOW); digitalWrite(RL50, LOW); digitalWrite(RL75, LOW); digitalWrite(RL100, LOW); digitalWrite(ABB0, HIGH); digitalWrite(ABB25, LOW); digitalWrite(ABB50, LOW); digitalWrite(ABB75, LOW); digitalWrite(ABB100, LOW); } else { // turn LED off: digitalWrite(ABB0, LOW); } // Check 25 Yard Selection: if (SS25State == HIGH) { // turn 25Y Light ON and 25Y Camera ON and turn on 25 Yard ABB Ref: digitalWrite(RC25, HIGH); digitalWrite(RC50, LOW); digitalWrite(RC75, LOW); digitalWrite(RC100, LOW); digitalWrite(RL25, HIGH); digitalWrite(RL50, LOW); digitalWrite(RL75, LOW); digitalWrite(RL100, LOW); digitalWrite(ABB0, LOW); digitalWrite(ABB25, HIGH); digitalWrite(ABB50, LOW); digitalWrite(ABB75, LOW); digitalWrite(ABB100, LOW); } else { // turn 25Y camera and lights off: digitalWrite(RC25, LOW); digitalWrite(RL25, LOW); digitalWrite(ABB25, LOW); } // Check 50 Yard Selection: if (SS50State == HIGH) { // turn 50Y Light ON and 50Y Camera ON and turn on 50 Yard ABB Ref: digitalWrite(RC25, LOW); digitalWrite(RC50, HIGH); digitalWrite(RC75, LOW); digitalWrite(RC100, LOW); digitalWrite(RL25, LOW); digitalWrite(RL50, HIGH); digitalWrite(RL75, LOW); digitalWrite(RL100, LOW); digitalWrite(ABB0, LOW); digitalWrite(ABB25, LOW); digitalWrite(ABB50, HIGH); digitalWrite(ABB75, LOW); digitalWrite(ABB100, LOW); } else { // turn 50Y camera and lights off: digitalWrite(RC50, LOW); digitalWrite(RL50, LOW); digitalWrite(ABB50, LOW); } // Check 75 Yard Selection: if (SS75State == HIGH) { // turn 75Y Light ON and 75Y Camera ON and turn on 75 Yard ABB Ref: digitalWrite(RC25, LOW); digitalWrite(RC50, LOW); digitalWrite(RC75, HIGH); digitalWrite(RC100, LOW); digitalWrite(RL25, LOW); digitalWrite(RL50, LOW); digitalWrite(RL75, HIGH); digitalWrite(RL100, LOW); digitalWrite(ABB0, LOW); digitalWrite(ABB25, LOW); digitalWrite(ABB50, LOW); digitalWrite(ABB75, HIGH); digitalWrite(ABB100, LOW); } else { // turn 75Y camera and lights off: digitalWrite(RC75, LOW); digitalWrite(RL75, LOW); digitalWrite(ABB75, LOW); } // Check 100 Yard Selection: if (SS100State == HIGH) { // turn 100Y Light ON and 100Y Camera ON and turn on 100 Yard ABB Ref: digitalWrite(RC25, LOW); digitalWrite(RC50, LOW); digitalWrite(RC75, LOW); digitalWrite(RC100, HIGH); digitalWrite(RL25, LOW); digitalWrite(RL50, LOW); digitalWrite(RL75, LOW); digitalWrite(RL100, HIGH); digitalWrite(ABB0, LOW); digitalWrite(ABB25, LOW); digitalWrite(ABB50, LOW); digitalWrite(ABB75, LOW); digitalWrite(ABB100, HIGH); } else { // turn 100Y camera and lights off: digitalWrite(RC100, LOW); digitalWrite(RL100, LOW); digitalWrite(ABB100, LOW); } }