#define GRNSIG1 4
#define YLWSIG1 3
#define REDSIG1 2
#define GRNSIG2 5
#define YLWSIG2 6
#define REDSIG2 7
#define INTLOCK 8
#define EASTLED 9
#define WESTLED 10
#define SENSOR1 A0
#define SENSOR2 A1
#define SENSOR3 A2
#define SENSOR4 A3
#define SENSOR5 A4
#define SENSOR6 A5
void setup() {
Serial.begin(9600);
pinMode (GRNSIG1, OUTPUT);
pinMode (YLWSIG1, OUTPUT);
pinMode (REDSIG1, OUTPUT);
pinMode (GRNSIG2, OUTPUT);
pinMode (YLWSIG2, OUTPUT);
pinMode (REDSIG2, OUTPUT);
pinMode (EASTLED, OUTPUT);
pinMode (WESTLED, OUTPUT);
pinMode (SENSOR1, INPUT);
pinMode (SENSOR2, INPUT);
pinMode (SENSOR3, INPUT);
pinMode (SENSOR4, INPUT);
pinMode (SENSOR5, INPUT);
pinMode (SENSOR6, INPUT);
pinMode (INTLOCK, INPUT_PULLUP);
digitalWrite (GRNSIG1, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (REDSIG1, LOW);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG2, LOW);
digitalWrite (EASTLED, LOW);
digitalWrite (WESTLED, LOW);
}
void loop() {
delay(500);
// put your main code here, to run repeatedly:
int valA0 = analogRead(SENSOR1);
int valA1 = analogRead(SENSOR2);
int valA2 = analogRead(SENSOR3);
int valA3 = analogRead(SENSOR4);
int valA4 = analogRead(SENSOR5);
int valA5 = analogRead(SENSOR6);
int valLOCK = digitalRead(INTLOCK);
if (valLOCK > 0) {
digitalWrite (WESTLED, HIGH);
digitalWrite (EASTLED, LOW);
} else {
digitalWrite (WESTLED, LOW);
digitalWrite (EASTLED, HIGH);
} //SYSTEM AT REST
if ((valLOCK > 0) && (valA5 < 500) && (valA4 < 500) && (valA3 < 500) && (valA2 < 500) && (valA1 < 500) && (valA0 < 500)) {
digitalWrite (GRNSIG1, LOW);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG1, HIGH);
digitalWrite (REDSIG2, HIGH);
Serial.print("ALL RED");
} //WEST GREEN1
if ((valLOCK > 0) && (valA5 > 500) && (valA4 < 500) && (valA3 < 500) && (valA2 < 500) && (valA1 < 500) && (valA0 < 500)) {
digitalWrite (GRNSIG1, HIGH);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG1, LOW);
digitalWrite (REDSIG2, HIGH);
Serial.print("GREEN1");
} //WEST GREEN2
if ((valLOCK > 0) && (valA5 < 500) && (valA4 > 500) && (valA3 < 500) && (valA2 < 500) && (valA1 < 500) && (valA0 < 500)) {
digitalWrite (GRNSIG1, HIGH);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG1, LOW);
digitalWrite (REDSIG2, HIGH);
Serial.print("GREEN2");
} //WEST GREEN3
if ((valLOCK > 0) && (valA5 < 500) && (valA4 < 500) && (valA3 > 500) && (valA2 < 500) && (valA1 < 500) && (valA0 < 500)) {
digitalWrite (GRNSIG1, HIGH);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG1, LOW);
digitalWrite (REDSIG2, HIGH);
Serial.print("GREEN3");
} //WEST RED1
if ((valLOCK > 0) && (valA2 > 500) && (valA1 < 500) && (valA0 < 500)) {
digitalWrite (GRNSIG1, LOW);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG1, HIGH);
digitalWrite (REDSIG2, HIGH);
Serial.print("RED1");
} //WEST RED2
if ((valLOCK > 0) && (valA2 > 500) && (valA1 < 500) && (valA0 < 500)) {
digitalWrite (GRNSIG1, LOW);
digitalWrite (GRNSIG2, LOW);
digitalWrite (YLWSIG1, LOW);
digitalWrite (YLWSIG2, LOW);
digitalWrite (REDSIG1, HIGH);
digitalWrite (REDSIG2, HIGH);
Serial.print("RED2");
}
if ((valLOCK > 0) && (valA0 < 500)) {
digitalWrite (GRNSIG1, LOW);
digitalWrite (YLWSIG1, HIGH);
digitalWrite (REDSIG1, LOW);
Serial.print("YELLOW1");
}
}