Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // simple LED traffic light Arduino sketch
- // http://www.youtube.com/watch?v=Y67EzJB7QYU
- const int pinR = 13;
- const int pinY = 12;
- const int pinG = 11;
- const int durationMs = 4000;
- typedef enum EState {
- RED = 0,
- YELLOW = 1,
- GREEN = 2,
- REDYELLOW = 3
- } State;
- State light = RED;
- void setup()
- {
- pinMode(pinR, OUTPUT);
- pinMode(pinY, OUTPUT);
- pinMode(pinG, OUTPUT);
- // blink yellow
- for(int i=0; i<5; ++i)
- {
- digitalWrite(pinY, HIGH);
- delay(1000);
- digitalWrite(pinY, LOW);
- delay(1000);
- }
- // switch to red and wait
- digitalWrite(pinR, HIGH);
- delay(2000);
- }
- void loop()
- {
- switch(light)
- {
- case RED:
- digitalWrite(pinR, HIGH);
- digitalWrite(pinY, LOW);
- light = REDYELLOW;
- break;
- case REDYELLOW:
- digitalWrite(pinR, HIGH);
- digitalWrite(pinY, HIGH);
- digitalWrite(pinG, LOW);
- light = GREEN;
- break;
- case GREEN:
- digitalWrite(pinR, LOW);
- digitalWrite(pinY, LOW);
- digitalWrite(pinG, HIGH);
- light = YELLOW;
- break;
- case YELLOW:
- digitalWrite(pinY, HIGH);
- digitalWrite(pinG, LOW);
- light = RED;
- break;
- }
- delay(durationMs);
- }
Advertisement
Add Comment
Please, Sign In to add comment