#define Y1 3
#define W1 4
#define Y2 5
#define W2 6
#define X1 7
#define X2 8
#define Yout 9
#define SVout 10
#define EP 11
#define VO 12
#define HB 13
#define Winh 14
int page;
int paragraph;
int sentence;
int verb;
int noun;
int priority;
int valve;
int inhibit;
void setup() {
pinMode(Y1, INPUT_PULLUP);
pinMode(W1, INPUT_PULLUP);
pinMode(Y2, INPUT_PULLUP);
pinMode(W2, INPUT_PULLUP);
pinMode(EP, INPUT_PULLUP);
pinMode(VO, INPUT_PULLUP);
pinMode(Winh, INPUT_PULLUP);
pinMode(X1, OUTPUT);
pinMode(X2, OUTPUT);
pinMode(Yout, OUTPUT);
pinMode(SVout, OUTPUT);
pinMode(HB, OUTPUT);
digitalWrite(HB, HIGH);
digitalWrite(X1, LOW);
digitalWrite(X2, LOW);
digitalWrite(Yout, LOW);
digitalWrite(SVout, LOW);
delay(1000);
digitalWrite(HB, LOW);
Serial.begin(9600);
inputs();
}
void loop() {
inputs();
while(priority == 1) {
inputs();
if(digitalRead(Y1) == LOW) {
digitalWrite(Yout, HIGH);
if(inhibit == 2) {
digitalWrite(X2, HIGH);
digitalWrite(X1, LOW);
}
else if(inhibit == 1) {
digitalWrite(X2, LOW);
digitalWrite(X1, LOW);
}
delay(2000);
if(valve == priority) {
digitalWrite(SVout, HIGH);
}
else if(valve != priority) {
digitalWrite(SVout, LOW);
}
}
else if(digitalRead(Y1) == HIGH) {
if(digitalRead(Y2) == LOW) {
digitalWrite(Yout, HIGH);
if(inhibit == 2) {
digitalWrite(X2, LOW);
digitalWrite(X1, HIGH);
}
else if(inhibit == 1) {
digitalWrite(X2, LOW);
digitalWrite(X1, LOW);
}
delay(2000);
if(valve == priority) {
digitalWrite(SVout, LOW);
}
else if(valve != priority) {
digitalWrite(SVout, HIGH);
}
}
else if(digitalRead(Y2) == HIGH) {
digitalWrite(Yout, LOW);
digitalWrite(SVout, LOW);
digitalWrite(X1, LOW);
digitalWrite(X2, LOW);
}
}
}
while(priority == 2) {
inputs();
if(digitalRead(Y2) == LOW) {
digitalWrite(Yout, HIGH);
if(inhibit == 2) {
digitalWrite(X2, LOW);
digitalWrite(X1, HIGH);
}
else if(inhibit == 1) {
digitalWrite(X2, LOW);
digitalWrite(X1, LOW);
}
delay(2000);
if(valve == priority) {
digitalWrite(SVout, HIGH);
}
else if(valve != priority) {
digitalWrite(SVout, LOW);
}
}
else if(digitalRead(Y2) == HIGH) {
if(digitalRead(Y1) == LOW) {
digitalWrite(Yout, HIGH);
if(inhibit == 2) {
digitalWrite(X2, HIGH);
digitalWrite(X1, LOW);
}
else if(inhibit == 1) {
digitalWrite(X2, LOW);
digitalWrite(X1, LOW);
}
delay(2000);
if(valve == priority) {
digitalWrite(SVout, LOW);
}
else if(valve != priority) {
digitalWrite(SVout, HIGH);
}
}
else if(digitalRead(Y1) == HIGH) {
digitalWrite(Yout, LOW);
digitalWrite(SVout, LOW);
digitalWrite(X1, LOW);
digitalWrite(X2, LOW);
}
}
}
}
void inputs() {
if(digitalRead(EP) == HIGH) {
priority = 1;
if(digitalRead(VO) == HIGH) {
valve = 1;
}
else if(digitalRead(VO) == LOW) {
valve = 2;
}
}
else if(digitalRead(EP) == LOW) {
priority = 2;
if(digitalRead(VO) == HIGH) {
valve = 2;
}
else if(digitalRead(VO) == LOW) {
valve = 1;
}
}
if(digitalRead(Winh) == HIGH) {
inhibit = 1;
}
else if(digitalRead(Winh) == LOW) {
inhibit = 2;
}
}