Simple Arduino Traffic Lights

74,092

80

21

Posted

Introduction: Simple Arduino Traffic Lights

Have you ever made a city out of Legos? I know i have built many of them but they all missed something... Traffic lights!
So i decided to make my very own traffic light setup from my arduino board.

Step 1: You Will Need:

You will need:

An arduino board
Red, Green and amber LED's
Three 220 Ohm Resistors

Optional:

Wire
and an Protoshield

Step 2: Get the Components

I assume you already have an adruino board, and maybe also a Protoshield.

You'll need the LED's and resistors

the 220 Ohm resistors are color coded so: Red, Red, Brown

Step 3: Hook Up to the Board

Since this is a really simple project we only need 3 digital pins and ground.

Put the LED's in the breadboard/protoboard and use the resistors to connect them to the digital pins,

Green to pin 8
Yellow to pin 9
and Red to pin 10

then connect all the negative pins of the LED's together and to ground.

Step 4: Upload the Code!

Again, since this is a really simple project the code is also simple,
just copy it from below and upload it to your board via USB.

int greenled = 8; //Led's and pins
int yellowled = 9;
int redled = 10;

void setup()
{
pinMode(greenled, OUTPUT); //Pinmodes of the leds
pinMode(yellowled, OUTPUT);
pinMode(redled, OUTPUT);
}

void loop()
{
digitalWrite(greenled, HIGH); //Green on for 5 seconds
delay(5000);
digitalWrite(greenled, LOW); //Green off, yellow on for 2 seconds
digitalWrite(yellowled, HIGH);
delay(2000);
digitalWrite(yellowled, LOW); //yellow off, red on for 5 seconds
digitalWrite(redled, HIGH);
delay(5000);
digitalWrite(yellowled, HIGH); //Yellow and red on for 2 seconds
delay(2000);
digitalWrite(redled, LOW); //Red and Yellow off
digitalWrite(yellowled, LOW);
}

Step 5: Watch Your Traffic Being Controlled :)

Now you can see your very own traffic lights, control traffic.
the lights change according to European standards.

2 People Made This Project!

Recommendations

  • Science of Cooking

    Science of Cooking
  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Microcontroller Contest

    Microcontroller Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

17 Comments

Hi,

Now that's a cool breadboard you have!

Can you tell me where you bought it?

I definately want to buy one :)

Thanks and greets from Holland.

Jan

i would like to make traffic light using red and green light only.

so, shoud i just delete the amber color ?? need help here. thank you

this is the screenshot

Immagine.png

Nice build, wrote nearly the same too ;-). Only modification: Make the delay variable for impatient kids or realistic crowded cities.

void loop() {

// WAIT

digitalWrite(RED, HIGH);

digitalWrite(YELLOW, LOW );

digitalWrite(GREEN, LOW );

delay(DELAY*3);

// START

digitalWrite(RED, HIGH);

digitalWrite(YELLOW, HIGH );

digitalWrite(GREEN, LOW );

delay(DELAY);

// GO

digitalWrite(RED, LOW );

digitalWrite(YELLOW, LOW );

digitalWrite(GREEN, HIGH);

delay(DELAY*2);

// STOP

digitalWrite(RED, LOW );

digitalWrite(YELLOW, HIGH );

digitalWrite(GREEN, LOW);

delay(DELAY);

}

user

Had fun building the double traffic lights. I changed the code to work like actual traffic lights. Here is the change.

int g1 = 8;
int y1 = 9;
int r1 = 10;
int r2 = 13;
int y2 = 12;
int g2 = 11;
void setup()
{
pinMode(g1, OUTPUT);
pinMode(y1, OUTPUT);
pinMode(r1, OUTPUT);
pinMode(r2, OUTPUT);
pinMode(y2, OUTPUT);
pinMode(g2, OUTPUT);
}
void loop()
{
digitalWrite(r1, HIGH);
digitalWrite(g2, HIGH);
delay(8000);
digitalWrite(g2, LOW);
digitalWrite(y2, HIGH);
delay(6000);
digitalWrite(y2, LOW);
digitalWrite(r2, HIGH);
delay(50);
digitalWrite(r1,LOW);
digitalWrite(g1, HIGH);
delay(8000);
digitalWrite(g1, LOW);
digitalWrite(y1, HIGH);
delay(6000);
digitalWrite(y1, LOW);
digitalWrite(r1, HIGH);
delay(50);
digitalWrite(r2,LOW);
}

its a lot of fun this project if made it i also made a double traffic light here is the code for it

#define DELAYg 2000

#define DELAYy 1000

#define DELAYr 2500

int g1 = 8;

int y1 = 9;

int r1 = 10;

int r2 = 13;

int y2 = 12;

int g2 = 11;

void setup()

{

pinMode(g1, OUTPUT);

pinMode(y1, OUTPUT);

pinMode(r1, OUTPUT);

pinMode(r2, OUTPUT);

pinMode(y2, OUTPUT);

pinMode(g2, OUTPUT);

}

void loop()

{

digitalWrite(r1, HIGH);

digitalWrite(g2, HIGH);

delay(DELAYg);

digitalWrite(g2, LOW);

digitalWrite(y2, HIGH);

delay(DELAYy);

digitalWrite(y2, LOW);

digitalWrite(r2, HIGH);

delay(DELAYr);

digitalWrite(r1,LOW);

digitalWrite(g1, HIGH);

delay(DELAYg);

digitalWrite(g1, LOW);

digitalWrite(y1, HIGH);

delay(DELAYy);

digitalWrite(y1, LOW);

digitalWrite(r1, HIGH);

delay(DELAYr);

digitalWrite(r2,LOW);

}

great... for me, I found an amber LED looks a more natural color for this..

Nice job ...but here is the fix for the red,yellow, green. It is incorrect The traffic lights goes as follows green, yellow,red... then red,green (not red,yellow.green).
Enjoy;)
CODE:

int greenled = 8; //Led's and pins
int yellowled = 9;
int redled = 10;

void setup()
{
pinMode(greenled, OUTPUT); //Pinmodes of the leds
pinMode(yellowled, OUTPUT);
pinMode(redled, OUTPUT);
}

void loop()
{
digitalWrite(greenled, HIGH); //Green on for 5 seconds
delay(5000);
digitalWrite(greenled, LOW); //Green off, yellow on for 2 seconds
digitalWrite(yellowled, HIGH);
delay(2000);
digitalWrite(yellowled, LOW); //yellow off, red on for 5 seconds
digitalWrite(redled, HIGH);
delay(5000);
digitalWrite(redled, LOW); //Red and Yellow off
digitalWrite(yellowled, LOW);
}

As I said, this is according to icelandic (european?) standards, not American