int relayPin2 = 2; // On=Ground Bond Active, Off=Hipot Active
int relayPin3 = 3; // Base Chassis to Cover Chassis Test
int relayPin4 = 4; // Base Chassis to Input Ground Test
int relayPin5 = 5; // Base Chassis to Input Live Test
int relayPin6 = 6; // Base Chassis to Input Neutral Test
int relayPin7 = 7; // Base Chassis to Transformer Test
int relayPin12 = 12; // Activate Hipot Test
int relayPin13 = 13; // Activate Ground Bond Test
const char BUTTON_PIN = 8;
bool pressed = false;
void setup() {
// Setup pin modes
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
// Read button
bool currentState = digitalRead(BUTTON_PIN);
if (currentState == pressed) {
// Ground Bond Test Step 1 (Base Chassis to Cover Chassis)
pinMode(relayPin13, OUTPUT);
digitalWrite(relayPin13, HIGH);
pinMode(relayPin2, OUTPUT);
digitalWrite(relayPin2, HIGH);
pinMode(relayPin3, OUTPUT);
digitalWrite(relayPin3, HIGH);
delay(500);
digitalWrite(relayPin13, LOW);
delay(4000);
digitalWrite(relayPin3, LOW);
digitalWrite(relayPin2, LOW);
// Ground Bond Test Step 2 (Base Chassis to Input Ground)
pinMode(relayPin13, OUTPUT);
digitalWrite(relayPin13, HIGH);
pinMode(relayPin2, OUTPUT);
digitalWrite(relayPin2, HIGH);
pinMode(relayPin4, OUTPUT);
digitalWrite(relayPin4, HIGH);
delay(500);
digitalWrite(relayPin13, LOW);
delay(4000);
digitalWrite(relayPin4, LOW);
digitalWrite(relayPin2, LOW);
// Hipot Test Step 1 (Base Chassis to Input Live)
pinMode(relayPin12, OUTPUT);
digitalWrite(relayPin12, HIGH);
pinMode(relayPin5, OUTPUT);
digitalWrite(relayPin5, HIGH);
delay(500);
digitalWrite(relayPin12, LOW);
delay(4000);
digitalWrite(relayPin5, LOW);
// Hipot Test Step 2 (Base Chassis to Input Neutral)
pinMode(relayPin12, OUTPUT);
digitalWrite(relayPin12, HIGH);
pinMode(relayPin6, OUTPUT);
digitalWrite(relayPin6, HIGH);
delay(500);
digitalWrite(relayPin12, LOW);
delay(4000);
digitalWrite(relayPin6, LOW);
// Hipot Test Step 3 (Base Chassis to Transformer)
pinMode(relayPin12, OUTPUT);
digitalWrite(relayPin12, HIGH);
pinMode(relayPin7, OUTPUT);
digitalWrite(relayPin7, HIGH);
delay(500);
digitalWrite(relayPin12, LOW);
delay(4000);
digitalWrite(relayPin7, LOW);
while(digitalRead(BUTTON_PIN) == pressed) {
// Do nothing while button is pressed
}
}
}