Hello dear readers!
I just wanted to post a code of a traffic light control, which easily is built on a breadboard.
This is my first post to hopefully help others that are beginners like my self.
Anyway..,
You only need 3 leds (red, green & yellow), 3 resistors ? 330?, some wire & an Arduino.
If you need help on how to build the circuit, just click on the link in the code below.
I can post a screenshot of how I built my circuit if requested. Cheers!
/*
Trafficlights made basic, by inicko. I made a few changes from; [url]www.makeuseof.com/tag/traffic-light-controller/[/url] |
<_________________________>----------------------------------------------------------------------------|
-------------------------|
the loop now goes: | I found my changes made a more reallistic light pattern than
yellow & red to red | the original code. At least this is how the traffic lights are -
red to red & yellow | in Sweden as far as I know.
red & yellow to green |
green to green & yellow | Hope you enjoy it! I've just started with programming, so feel free to change anything
green & yellow to yellow| if it's wrong or could be written in a better way etc.
yellow to red | It works the way I intended anyway, so I'm happy ;-)!
________________________|
*/
// defines the pin outputs as the colored leds for ease //
int red = 13;
int yellow = 12;
int green = 11;
// sets the pins 11-13 as outputs //
void setup(){
pinMode(red, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
}
// creates the loop that your Arduino will repeat over & over //
void loop(){
changeLights();
delay(3000);
}
// the commands that make the leds light up in a specific order //
void changeLights(){
// turn off green, then turn yellow on for 2 seconds
digitalWrite(green, LOW);
digitalWrite(yellow, HIGH);
delay(2000);
// turn off yellow, then turn red on for 5 seconds
digitalWrite(yellow, LOW);
digitalWrite(red, HIGH);
delay(5000);
// red & yellow on for 2 seconds (red already on)
digitalWrite(yellow, HIGH);
delay(2000);
// green on for 5 seconds, turns off red & yellow
digitalWrite(yellow, LOW);
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
delay(5000);
// turn on yellow (green already on)
digitalWrite(yellow, HIGH);
delay(100);
}