Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Project 5 - Controlling Traffic
- // ==Page 3==
- // define the pins that the buttons and lights are connected to:
- #define westButton 35
- #define eastButton 39
- #define westRed 43
- #define westYellow 47
- #define westGreen 51
- #define eastRed 45
- #define eastYellow 49
- #define eastGreen 53
- #define yellowBlinkTime 500 // 0.1 seconds for yellow light blink
- boolean trafficWest = true; // west = true, east = false
- int flowTime = 10000; // amount of time to let traffic flow
- int changeDelay = 2000; // amount of time between color changes
- void setup()
- {
- pinMode(westButton, INPUT);
- pinMode(eastButton, INPUT);
- pinMode(westRed, OUTPUT);
- pinMode(westYellow, OUTPUT);
- pinMode(westGreen, OUTPUT);
- pinMode(eastRed, OUTPUT);
- pinMode(eastYellow, OUTPUT);
- pinMode(eastGreen, OUTPUT);
- // set initial state for lights - west side is green first
- digitalWrite(westRed, LOW);
- digitalWrite(westYellow, LOW);
- digitalWrite(westGreen, HIGH);
- digitalWrite(eastRed, HIGH);
- digitalWrite(eastYellow, LOW);
- digitalWrite(eastGreen, LOW);
- }
- void loop()
- {
- if ( digitalRead(eastButton) == HIGH ) //changing from west to east
- {
- if ( trafficWest == true )
- {
- trafficWest = false;
- delay(flowTime);
- digitalWrite(westGreen, LOW);
- digitalWrite(westYellow, HIGH);
- delay(changeDelay);
- for ( int a = 0 ; a < 5 ; a++ )
- {
- digitalWrite(westYellow, LOW);
- delay(yellowBlinkTime);
- digitalWrite(westYellow, HIGH);
- delay(yellowBlinkTime);
- }
- digitalWrite(westYellow, LOW);
- digitalWrite(westRed, HIGH);
- digitalWrite(eastRed, LOW);
- digitalWrite(eastGreen, HIGH); //traffic now east
- }
- }
- if ( digitalRead(westButton) == HIGH ) //changing from east to west
- {
- if ( trafficWest != true )
- {
- trafficWest = true;
- delay(flowTime);
- digitalWrite(eastGreen, LOW);
- digitalWrite(eastYellow, HIGH);
- delay(changeDelay);
- for ( int a = 0; a < 5; a++ )
- {
- digitalWrite(eastYellow, LOW);
- delay(yellowBlinkTime);
- digitalWrite(eastYellow, HIGH);
- delay(yellowBlinkTime);
- }
- digitalWrite(eastYellow, LOW);
- digitalWrite(eastRed, HIGH);
- digitalWrite(westRed, LOW);
- digitalWrite(westGreen, HIGH); //traffic now west
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement