int greenLight = 13;
int orangeLight = 10;
int redLight = 9;
int pedgreenLight = 8;
int pedredLight = 6;
int pushButton = 7;
int readpushButton = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
{
pinMode(13, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(9600);
}
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print(" ");
int readpushButton = digitalRead(pushButton);
if(readpushButton == LOW) {
digitalWrite(13, HIGH);
lcd.print("WAIT");
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(6, LOW);
lcd.setCursor(0, 1);
lcd.print("8 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("7 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("6 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("5 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("4 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("3 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("2 Second");
digitalWrite(greenLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("1 Sec");
digitalWrite(greenLight, HIGH);
delay(1000);
digitalWrite(greenLight, LOW);
}
else if (readpushButton == HIGH) {
digitalWrite(13, HIGH);
delay(2000);
digitalWrite(13, LOW);
digitalWrite(10, HIGH);
delay(3000);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(6, LOW);
Serial.println(" Pedestrian waiting to cross");
digitalWrite(13, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
digitalWrite(6, LOW);
Serial.println(" Pedestrian Crossing");
lcd.setCursor(0, 0);
lcd.print(" Slow down");
lcd.setCursor(0, 1);
lcd.print("05 Second");
digitalWrite(orangeLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("04 Second");
digitalWrite(orangeLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("03 Second");
digitalWrite(orangeLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("02 Second");
digitalWrite(orangeLight, HIGH);
delay(1000);
lcd.setCursor(0, 1);
lcd.print("01 Second");
digitalWrite(orangeLight, HIGH);
delay(1000);
digitalWrite(orangeLight, LOW);
Serial.println("\nyellow");
delay(500);
lcd.print(" Go ahead");
delay(6000);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
}
}