Advertisement
Guest User

trafficsign

a guest
Feb 14th, 2013
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.04 KB | None | 0 0
  1. const int vgr = 6;
  2. const int vro = 7;
  3. const int vsw = 5;
  4. const int aro = 10;
  5. const int age = 9;
  6. const int agr = 8;
  7. const int speaker = 4;
  8. long currentMillis;
  9. long previousMillis = 0;
  10.  
  11. void setup()
  12. {
  13.     pinMode(vgr, OUTPUT);
  14.     pinMode(vro, OUTPUT);
  15.     pinMode(vsw, INPUT);
  16.     pinMode(aro, OUTPUT);
  17.     pinMode(agr, OUTPUT);
  18.     pinMode(age, OUTPUT);
  19.     pinMode(speaker, OUTPUT);
  20. }
  21.  
  22. void autoLED()
  23. {
  24.   if(currentMillis - previousMillis <= 5000)
  25.   {
  26.      digitalWrite(aro, HIGH);
  27.      digitalWrite(age, LOW);
  28.   }
  29.   if(currentMillis - previousMillis > 5000 && currentMillis - previousMillis < 10000)
  30.   {
  31.      digitalWrite(agr, HIGH);
  32.      digitalWrite(aro, LOW);
  33.   }
  34.   if(currentMillis - previousMillis > 10000)
  35.   {
  36.      digitalWrite(agr, LOW);
  37.      digitalWrite(age, HIGH);
  38.   }
  39.   if(currentMillis - previousMillis > 11000)
  40.   {
  41.      previousMillis = currentMillis;
  42.   }
  43. }
  44. void blinkVLED()
  45. {
  46.   previousMillis = currentMillis;
  47.   boolean test = true;
  48.   while(currentMillis - previousMillis < 7000)
  49.   {
  50.     currentMillis = millis();
  51.     if(test == true)
  52.     {
  53.       digitalWrite(vgr,LOW);
  54.     }
  55.     else
  56.     {
  57.       digitalWrite(vgr,HIGH);
  58.     }
  59.     if((currentMillis / 1000) % 2)
  60.     {
  61.       test = false;
  62.     }
  63.     else
  64.     {
  65.       test=true;
  66.     }
  67.   }
  68.   digitalWrite(vgr,LOW);
  69.    
  70. }
  71. void beep(int t)
  72. {
  73.  for(int n;n<=t;n++)
  74.  {
  75.    digitalWrite(speaker,HIGH);
  76.    delay(200);
  77.    digitalWrite(speaker,LOW);
  78.    delay(200);
  79.  }
  80. }
  81. void cleartraffic(String n)
  82. {
  83.   int count = 0;
  84.   previousMillis = currentMillis;
  85.   while(count < 1)
  86.   {
  87.     currentMillis = millis();
  88.     if(n == "groen")
  89.     {
  90.       if(currentMillis - previousMillis > 2000)
  91.       {
  92.         digitalWrite(agr,LOW);
  93.         digitalWrite(age,HIGH);
  94.       }
  95.       if(currentMillis - previousMillis > 4000)
  96.       {
  97.         digitalWrite(age,LOW);
  98.         digitalWrite(aro,HIGH);
  99.       }
  100.       if(currentMillis - previousMillis > 5000)
  101.       {
  102.         digitalWrite(vro,LOW);
  103.         digitalWrite(vgr,HIGH);
  104.         beep(25);
  105.         blinkVLED();
  106.         count++;
  107.       }
  108.     }
  109.     if(n == "geel")
  110.     {
  111.       if(currentMillis - previousMillis > 2000)
  112.       {
  113.         digitalWrite(age,LOW);
  114.         digitalWrite(aro,HIGH);
  115.       }
  116.       if(currentMillis - previousMillis > 4000)
  117.       {
  118.         digitalWrite(vro,LOW);
  119.         digitalWrite(vgr,HIGH);
  120.         beep(25);
  121.         blinkVLED();
  122.         count++;
  123.       }
  124.     }
  125.     if(n=="rood")
  126.     {
  127.       if(currentMillis - previousMillis > 1000)
  128.       {
  129.         digitalWrite(vro,LOW);
  130.         digitalWrite(vgr,HIGH);
  131.         beep(25);
  132.         blinkVLED();
  133.         count++;
  134.       }
  135.     }
  136.   }
  137. }
  138.  
  139. void loop()
  140. {
  141.   currentMillis = millis();
  142.   if(digitalRead(vsw) == HIGH)
  143.   {
  144.     if(digitalRead(aro) == HIGH)
  145.     {
  146.        cleartraffic("rood");
  147.     }
  148.     if(digitalRead(age) == HIGH)
  149.     {
  150.        cleartraffic("geel");
  151.     }
  152.     if(digitalRead(agr) == HIGH)
  153.     {
  154.        cleartraffic("groen");
  155.     }
  156.   }
  157.   else
  158.   {
  159.     digitalWrite(vro,HIGH);
  160.     autoLED();
  161.   }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement