Advertisement
Guest User

Project 5 - Controlling Traffic

a guest
May 19th, 2015
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. // Project 5 - Controlling Traffic
  2.  
  3. // ==Page 3==
  4.  
  5.  
  6. // define the pins that the buttons and lights are connected to:
  7. #define westButton 35
  8. #define eastButton 39
  9. #define westRed 43
  10. #define westYellow 47
  11. #define westGreen 51
  12. #define eastRed 45
  13. #define eastYellow 49
  14. #define eastGreen 53
  15. #define yellowBlinkTime 500 // 0.1 seconds for yellow light blink
  16. boolean trafficWest = true; // west = true, east = false
  17. int flowTime = 10000; // amount of time to let traffic flow
  18. int changeDelay = 2000; // amount of time between color changes
  19.  
  20.  
  21. void setup()
  22. {
  23. pinMode(westButton, INPUT);
  24. pinMode(eastButton, INPUT);
  25. pinMode(westRed, OUTPUT);
  26. pinMode(westYellow, OUTPUT);
  27. pinMode(westGreen, OUTPUT);
  28. pinMode(eastRed, OUTPUT);
  29. pinMode(eastYellow, OUTPUT);
  30. pinMode(eastGreen, OUTPUT);
  31.  
  32. // set initial state for lights - west side is green first
  33.  
  34. digitalWrite(westRed, LOW);
  35. digitalWrite(westYellow, LOW);
  36. digitalWrite(westGreen, HIGH);
  37. digitalWrite(eastRed, HIGH);
  38. digitalWrite(eastYellow, LOW);
  39. digitalWrite(eastGreen, LOW);
  40. }
  41.  
  42. void loop()
  43. {
  44. if ( digitalRead(eastButton) == HIGH ) //changing from west to east
  45. {
  46. if ( trafficWest == true )
  47. {
  48. trafficWest = false;
  49. delay(flowTime);
  50. digitalWrite(westGreen, LOW);
  51. digitalWrite(westYellow, HIGH);
  52. delay(changeDelay);
  53. for ( int a = 0 ; a < 5 ; a++ )
  54. {
  55. digitalWrite(westYellow, LOW);
  56. delay(yellowBlinkTime);
  57. digitalWrite(westYellow, HIGH);
  58. delay(yellowBlinkTime);
  59. }
  60. digitalWrite(westYellow, LOW);
  61. digitalWrite(westRed, HIGH);
  62. digitalWrite(eastRed, LOW);
  63. digitalWrite(eastGreen, HIGH); //traffic now east
  64. }
  65. }
  66. if ( digitalRead(westButton) == HIGH ) //changing from east to west
  67. {
  68. if ( trafficWest != true )
  69. {
  70. trafficWest = true;
  71. delay(flowTime);
  72. digitalWrite(eastGreen, LOW);
  73. digitalWrite(eastYellow, HIGH);
  74. delay(changeDelay);
  75. for ( int a = 0; a < 5; a++ )
  76. {
  77. digitalWrite(eastYellow, LOW);
  78. delay(yellowBlinkTime);
  79. digitalWrite(eastYellow, HIGH);
  80. delay(yellowBlinkTime);
  81. }
  82. digitalWrite(eastYellow, LOW);
  83. digitalWrite(eastRed, HIGH);
  84. digitalWrite(westRed, LOW);
  85. digitalWrite(westGreen, HIGH); //traffic now west
  86. }
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement