Advertisement
Guest User

Semaphore Initial -working

a guest
Mar 21st, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. int redC = 11;
  2. int blueC = 10;
  3. int greenC = 9;
  4. int InterC = 8;
  5. int redP = 7;
  6. int greenP = 6;
  7. int button = 4;
  8. int buzzer = 2;
  9.  
  10. void setup()
  11. {
  12.   pinMode(redC, OUTPUT);
  13.   pinMode(blueC, OUTPUT);
  14.   pinMode(greenC, OUTPUT);
  15.   pinMode(InterC, OUTPUT);
  16.   pinMode(redP, OUTPUT);
  17.   pinMode(greenP, OUTPUT);
  18.   pinMode(button, INPUT);
  19.   pinMode(buzzer, OUTPUT);
  20.   setColor(255, 0, 0);  // red at cars for 10 seconds
  21.   digitalWrite(redP, HIGH); // red at pedestrians for 10 seconds
  22.   delay(2000); //should be 10 seconds but whatever
  23.   setColor(0,0,0);
  24.   digitalWrite(redP,LOW);
  25. }
  26. //10secondsRedP -> should call 8 seconds
  27.  
  28. void RedCarSemaphore(){
  29.   setColor(255,0,0);
  30.   digitalWrite(greenP,HIGH);
  31.   digitalWrite(redP,LOW);
  32.   for(int i=1;i<=10;i++){
  33.     digitalWrite(InterC,HIGH);
  34.     delay(200); //half a second
  35.     digitalWrite(InterC,LOW);
  36.     delay(200);
  37.      digitalWrite(InterC,HIGH);
  38.     delay(200); //half a second
  39.     digitalWrite(InterC,LOW);
  40.     delay(200);
  41.     if(i==8){ //after 8 seconds of green pedestrian stops
  42.       digitalWrite(greenP,LOW);
  43.       digitalWrite(redP,HIGH);
  44.     }
  45.   }
  46. }//10 seconds
  47. void GreenCarSemaphore(){
  48.   setColor(0,255,0);
  49.   digitalWrite(redP,HIGH);
  50.   digitalWrite(greenP,LOW);
  51.   delay(4000); //should be 15 seconds
  52. }
  53. void YellowCarsSemaphore(){
  54.   setColor(255,255,0);
  55.   delay(2000); //should be 3 seconds
  56. }
  57.  
  58. void EarthquakeSituation(){
  59.   //pedestrians semaphore is off
  60.   digitalWrite(redP,LOW);
  61.   digitalWrite(greenP,LOW);
  62.   //traffic lights should be blinking
  63.   for(int i=1;i<=10;i++){
  64.     digitalWrite(InterC,HIGH);
  65.     setColor(255,0,0);
  66.     delay(200); //half a second
  67.     digitalWrite(InterC,LOW);
  68.     setColor(0,0,0);
  69.     delay(200);
  70.     digitalWrite(InterC,HIGH);
  71.     setColor(255,0,0);
  72.     delay(200); //half a second
  73.     digitalWrite(InterC,LOW);
  74.     setColor(0,0,0);
  75.   }
  76.  
  77. }
  78. void loop()
  79. {
  80.   RedCarSemaphore();
  81.   GreenCarSemaphore();
  82.   YellowCarsSemaphore();  
  83.  // EarthquakeSituation();
  84. }
  85.  
  86. void setColor(int red, int green, int blue)
  87. {
  88.   analogWrite(redC, red);
  89.   analogWrite(greenC, green);
  90.   analogWrite(blueC, blue);  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement