So perhaps this code is not the way I want to go. I don't quite understand how to apply the switch case to my scenario, knowing my logic says no 2 solenoids can be open at the same time. I've enclosed my latest code below.
Do you have a hardware problem or a software problem? The only way to know is to add some Serial.print() statements, to output data. Read AND STORE the state of each switch AND PRINT IT!
if (digitalRead(S1) == LOW && digitalRead(S2) == HIGH && digitalRead(S3) == HIGH)
if (digitalRead(S2) == LOW && digitalRead(S1) == HIGH && digitalRead(S3) == HIGH)
if (digitalRead(S3) == LOW && digitalRead(S2) == HIGH)
Why do you need to keep reading the switches? Oh, yeah, it's because you don't save what you read.