Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int vgr = 6;
- const int vro = 7;
- const int vsw = 5;
- const int aro = 10;
- const int age = 9;
- const int agr = 8;
- const int speaker = 4;
- long currentMillis;
- long previousMillis = 0;
- void setup()
- {
- pinMode(vgr, OUTPUT);
- pinMode(vro, OUTPUT);
- pinMode(vsw, INPUT);
- pinMode(aro, OUTPUT);
- pinMode(agr, OUTPUT);
- pinMode(age, OUTPUT);
- pinMode(speaker, OUTPUT);
- }
- void autoLED()
- {
- if(currentMillis - previousMillis <= 5000)
- {
- digitalWrite(aro, HIGH);
- digitalWrite(age, LOW);
- }
- if(currentMillis - previousMillis > 5000 && currentMillis - previousMillis < 10000)
- {
- digitalWrite(agr, HIGH);
- digitalWrite(aro, LOW);
- }
- if(currentMillis - previousMillis > 10000)
- {
- digitalWrite(agr, LOW);
- digitalWrite(age, HIGH);
- }
- if(currentMillis - previousMillis > 11000)
- {
- previousMillis = currentMillis;
- }
- }
- void blinkVLED()
- {
- previousMillis = currentMillis;
- boolean test = true;
- while(currentMillis - previousMillis < 7000)
- {
- currentMillis = millis();
- if(test == true)
- {
- digitalWrite(vgr,LOW);
- }
- else
- {
- digitalWrite(vgr,HIGH);
- }
- if((currentMillis / 1000) % 2)
- {
- test = false;
- }
- else
- {
- test=true;
- }
- }
- digitalWrite(vgr,LOW);
- }
- void beep(int t)
- {
- for(int n;n<=t;n++)
- {
- digitalWrite(speaker,HIGH);
- delay(200);
- digitalWrite(speaker,LOW);
- delay(200);
- }
- }
- void cleartraffic(String n)
- {
- int count = 0;
- previousMillis = currentMillis;
- while(count < 1)
- {
- currentMillis = millis();
- if(n == "groen")
- {
- if(currentMillis - previousMillis > 2000)
- {
- digitalWrite(agr,LOW);
- digitalWrite(age,HIGH);
- }
- if(currentMillis - previousMillis > 4000)
- {
- digitalWrite(age,LOW);
- digitalWrite(aro,HIGH);
- }
- if(currentMillis - previousMillis > 5000)
- {
- digitalWrite(vro,LOW);
- digitalWrite(vgr,HIGH);
- beep(25);
- blinkVLED();
- count++;
- }
- }
- if(n == "geel")
- {
- if(currentMillis - previousMillis > 2000)
- {
- digitalWrite(age,LOW);
- digitalWrite(aro,HIGH);
- }
- if(currentMillis - previousMillis > 4000)
- {
- digitalWrite(vro,LOW);
- digitalWrite(vgr,HIGH);
- beep(25);
- blinkVLED();
- count++;
- }
- }
- if(n=="rood")
- {
- if(currentMillis - previousMillis > 1000)
- {
- digitalWrite(vro,LOW);
- digitalWrite(vgr,HIGH);
- beep(25);
- blinkVLED();
- count++;
- }
- }
- }
- }
- void loop()
- {
- currentMillis = millis();
- if(digitalRead(vsw) == HIGH)
- {
- if(digitalRead(aro) == HIGH)
- {
- cleartraffic("rood");
- }
- if(digitalRead(age) == HIGH)
- {
- cleartraffic("geel");
- }
- if(digitalRead(agr) == HIGH)
- {
- cleartraffic("groen");
- }
- }
- else
- {
- digitalWrite(vro,HIGH);
- autoLED();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement