OP's CODE
int xlrPs = 52; // XLR Positive Pin test send
int xlrNs = 50; // XLR Negative Pin test send
int xlrGs = 48; // XLR Ground Pin test send
int xlrCs = 46; // XLR Case test send
int xlrPr = A0; // XLR Positive pin test receive
int xlrNr = A1; // XLR Negative pin test receive
int xlrGr = A2; // XLR Ground pin test receive
int xlrCr = A3; // XLR Case test receive
int Pfail = 31; // Positive pin test fail
int Nfail = 33; // Negative pin test fail
int Gfail = 35; // Ground pin test fail
int Cfail = 37; // case test fail
int Ppass = 53; // positive pin pass
int Npass = 51; // negative pin test pass
int Gpass = 49; // ground pin test pass
int Cpass = 47; // case test pass
int Good = 41; // good cable led
int Bad = 43; // bad cable led
int pos = 0; // variable for positive test
int neg = 0; // variable for negative test
int gnd = 0; // variable for ground test
int cas = 0; // variable for case test (shielded cable)
int P = 0;
int N = 0;
int G = 0;
int C = 0;
void setup() {
pinMode(xlrPs, OUTPUT);
pinMode(xlrNs, OUTPUT);
pinMode(xlrGs, OUTPUT);
pinMode(xlrCs, OUTPUT);
pinMode(Pfail, OUTPUT);
pinMode(Nfail, OUTPUT);
pinMode(Gfail, OUTPUT);
pinMode(Cfail, OUTPUT);
pinMode(Ppass, OUTPUT);
pinMode(Npass, OUTPUT);
pinMode(Gpass, OUTPUT);
pinMode(Cpass, OUTPUT);
pinMode(Good, OUTPUT);
pinMode(Bad, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(xlrPs, HIGH);
pos = analogRead(xlrPr);
if (pos >= 1020){
delay(100);
digitalWrite(Ppass, HIGH);
digitalWrite(Pfail, LOW);
P = 1;
}
else if (pos < 1020){
delay(100);
digitalWrite(Pfail, HIGH);
digitalWrite(Ppass, LOW);
P = 0;
}
digitalWrite(xlrNs, HIGH);
neg = analogRead(xlrNr);
if (neg >= 1020){
delay(100);
digitalWrite(Npass, HIGH);
digitalWrite(Nfail, LOW);
N = 1;
}
else if (neg < 1020){
delay(100);
digitalWrite(Npass, LOW);
digitalWrite(Nfail, HIGH);
N = 0;
}
digitalWrite(xlrGs, HIGH);
gnd = analogRead(xlrGr);
if (gnd >= 1020){
delay(100);
digitalWrite(Gpass, HIGH);
digitalWrite(Gfail, LOW);
G = 1;
}
else if (gnd < 1020){
delay(100);
digitalWrite(Gpass, LOW);
digitalWrite(Gfail, HIGH);
G = 0;
}
digitalWrite(xlrCs, HIGH);
cas = analogRead(xlrCr);
if (cas >= 1020){
delay(100);
digitalWrite(Cpass, HIGH);
digitalWrite(Cfail, LOW);
C = 1;
}
else if (cas < 1020){
delay(100);
digitalWrite(Cpass, LOW);
digitalWrite(Cfail, HIGH);
C = 0;
}
if (P + N + G + C == 4){
digitalWrite(Good, HIGH);
digitalWrite(Bad, LOW);
}
else if (P + N + G + C != 4){
digitalWrite(Good, LOW);
digitalWrite(Bad, HIGH);
}
}
A neat idea to use the analog inputs - then you can see leakage or voltage drop over the wires.