Introduction: Another Arduino Taffic Light
After working with the arduino and not knowing what the heck I'm doing I made Another simple traffic light. I looked around the web to find one that looks about normal and came across none. They seemed too fast. So, I found and modded some code to make this work. The coding is pretty simple.
Step 1: The Parts
1 - Arduino (Obvious)
1 - Breadboard
6 - 270 ohm resistors
2 - Red LED
2 - Yellow LED
2 - Green LED
Misc. - Wires and Patients.
1 - Breadboard
6 - 270 ohm resistors
2 - Red LED
2 - Yellow LED
2 - Green LED
Misc. - Wires and Patients.
Step 2: Wiring
I used Pins 2 - 7 to make things easy. I don't know if it hurts the Arduino to use both PWM and standard pins or not but, It works.
I wired up the grounds to the ground rail through the 270 OHM Resistors, it seems backwards to me, because I'm and electrician, to go to ground through a resistor but, I have seen this alot.
I took the 6 LED's Anode lead and wired......
Side 1 Side 2
1 - Red to Pin 2 2 - Red to 5
1 - Yellow to 3 2 - Yellow to 6
1 - Green to 4 2 - Green to 7
I wired up the grounds to the ground rail through the 270 OHM Resistors, it seems backwards to me, because I'm and electrician, to go to ground through a resistor but, I have seen this alot.
I took the 6 LED's Anode lead and wired......
Side 1 Side 2
1 - Red to Pin 2 2 - Red to 5
1 - Yellow to 3 2 - Yellow to 6
1 - Green to 4 2 - Green to 7
Step 3: The Code
I hope I didn't miss anything but if I did just comment.
The code I use seems simple, But I got confused so I had to get some help on figuring out what did what to who and how many.
There are some commented out sections that could come into play later.
void setup(){
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop(){
digitalWrite(2, HIGH); //Side 1 Red ON
delay(100);
digitalWrite(7, HIGH); //Side 2 Green ON
delay(5000);
digitalWrite(7, LOW); //Side 2 GREEN OFF
// delay(2000);
digitalWrite(6, HIGH); //Side 2 Yellow ON
delay(2000);
digitalWrite(6, LOW); //Side 2 Yellow OFF
// delay(2000);
digitalWrite(5, HIGH); //Side 2 Red ON
delay(100);
digitalWrite(2, LOW); //Side 1 Red OFF
// delay(2000);
digitalWrite(4, HIGH); //Side 1 Green ON
delay(5000);
digitalWrite(4, LOW); //Side 1 Green OFF
// delay(1000);
digitalWrite(3, HIGH); //Side 1 Yellow ON
delay(2000);
digitalWrite(3, LOW); //Side 1 Yellow OFF
// delay(1000);
digitalWrite(5, LOW); //Side 2 Red OFF
// digitalWrite(2,LOW); //Side 1 Red
// delay(1000);
}
The code I use seems simple, But I got confused so I had to get some help on figuring out what did what to who and how many.
There are some commented out sections that could come into play later.
void setup(){
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop(){
digitalWrite(2, HIGH); //Side 1 Red ON
delay(100);
digitalWrite(7, HIGH); //Side 2 Green ON
delay(5000);
digitalWrite(7, LOW); //Side 2 GREEN OFF
// delay(2000);
digitalWrite(6, HIGH); //Side 2 Yellow ON
delay(2000);
digitalWrite(6, LOW); //Side 2 Yellow OFF
// delay(2000);
digitalWrite(5, HIGH); //Side 2 Red ON
delay(100);
digitalWrite(2, LOW); //Side 1 Red OFF
// delay(2000);
digitalWrite(4, HIGH); //Side 1 Green ON
delay(5000);
digitalWrite(4, LOW); //Side 1 Green OFF
// delay(1000);
digitalWrite(3, HIGH); //Side 1 Yellow ON
delay(2000);
digitalWrite(3, LOW); //Side 1 Yellow OFF
// delay(1000);
digitalWrite(5, LOW); //Side 2 Red OFF
// digitalWrite(2,LOW); //Side 1 Red
// delay(1000);
}