Traffic light controller using Arduino:
Traffic signal is one of those elements that, for every commuter, seem to be part of everyday life. Wherever there are more number of cars, there will probably be one of these systems are present. Traffic light controller.
Nowadays traffic lights are quite complex within and have various kinds of sensors, timers, and also traffic monitoring systems that helps to control the traffic.
Having personal vehicles is very common today and a result, vehicles on the roads are exponentially increasing in numbers. Roads without any traffic lights or guidance can lead in to traffic congestion or could lead to accidents.
The traffic light system provides instructions to the users (drivers and pedestrians) by displaying lights of standard colour on four cross streets.
The colours used in traffic lights are Red, Yellow and Green for stop, slow and go respectively. The system is programmed to control the traffic lights for smooth and safe movement of vehicle traffic. The system consists of electro mechanical controllers with modern solid state computerized systems which has easy setup and maintenance.
This project is an Arduino board based Traffic Light system.
A simple system but can be extended to a real-time system with programmable timings, pedestrian lighting etc.
Project requirement:
- 4 Green LED
- 4 Red LED
- 4 Yellow LED
- Connecting wires
- Breadboard
- Arduino Board
Note: In practical, we did not have to use the current limiting resistors as the current from each digital I/O pin of the Arduino UNO is limited to 20mA only. Hence no resistor required for LED connection.
Circuit Diagram :
(circuits.io)Connect All the LEDs as per the circuit diagram shown below for traffic light controller.
Note: In practical, we did not have to use the current limiting resistors as the current from each digital I/O pin of the Arduino UNO is limited to 20mA only. Hence no resistor required for LED connection.
Working :
In this project, a simple traffic light system for a 4 way intersection is implemented using Arduino UNO development board. Although it is not the practical implementation for real life scenarios, it gives a general idea of the process behind the traffic light control system
Simple traffic light controller is made using Arduino UNO, where the traffic is controlled in based on programmed timings.
For better understand let’s consider time delays as below
Green – 20 Sec.
Yellow – 5 Sec.
Red – 75 Sec.
Each lane gets time duration of 25 seconds including the yellow light time to move.
The yellow light turns ON for short duration after green light, indicating vehicles to slow down before the red light appears to avoid sudden stoppage.
Vehicles in every lane have to wait for 75 Sec. during red signal.
Lane 1 | Lane 2 | Lane 3 | Lane 4 | |
Lane 1 Green | 20G | 25R | 50R | 75R |
5Y | 5R | 30R | 55R | |
Lane 2 Green | 75R | 20G | 25R | 50R |
55R | 5Y | 5R | 30R | |
Lane 3 Green | 50R | 75R | 20G | 25R |
30R | 55R | 5Y | 5R | |
Lane 4 Green | 25R | 50R | 75R | 20G |
5R | 30R | 55R | 5Y |
Code :
int Lane1[] = {13,12,11}; // Lane 1 Red, Yellow and Green
int Lane2[] = {10,9,8}; // Lane 2 Red, Yellow and Green
int Lane3[] = {7,6,5}; // Lane 3 Red, Yellow and Green
int Lane4[] = {4,3,2}; // Lane 4 Red, Yellow and Green
void setup()
{
for (int i = 0; i < 3; i++)
{
pinMode(Lane1[i], OUTPUT);
pinMode(Lane2[i], OUTPUT);
pinMode(Lane3[i], OUTPUT);
pinMode(Lane4[i], OUTPUT);
}
for (int i = 0; i < 3; i++)
{
digitalWrite(Lane1[i], LOW);
digitalWrite(Lane2[i], LOW);
digitalWrite(Lane3[i], LOW);
digitalWrite(Lane4[i], LOW);
}
}
void loop()
{
digitalWrite(Lane1[2], HIGH);
digitalWrite(Lane3[0], HIGH);
digitalWrite(Lane4[0], HIGH);
digitalWrite(Lane2[0], HIGH);
delay(7000);
digitalWrite(Lane1[2], LOW);
digitalWrite(Lane3[0], LOW);
digitalWrite(Lane1[1], HIGH);
digitalWrite(Lane3[1], HIGH);
delay(3000);
digitalWrite(Lane1[1], LOW);
digitalWrite(Lane3[1], LOW);
digitalWrite(Lane1[0], HIGH);
digitalWrite(Lane3[2], HIGH);
delay(7000);
digitalWrite(Lane3[2], LOW);
digitalWrite(Lane4[0], LOW);
digitalWrite(Lane3[1], HIGH);
digitalWrite(Lane4[1], HIGH);
delay(3000);
digitalWrite(Lane3[1], LOW);
digitalWrite(Lane4[1], LOW);
digitalWrite(Lane3[0], HIGH);
digitalWrite(Lane4[2], HIGH);
delay(7000);
digitalWrite(Lane4[2], LOW);
digitalWrite(Lane2[0], LOW);
digitalWrite(Lane4[1], HIGH);
digitalWrite(Lane2[1], HIGH);
delay(3000);
digitalWrite(Lane4[1], LOW);
digitalWrite(Lane2[1], LOW);
digitalWrite(Lane4[0], HIGH);
digitalWrite(Lane2[2], HIGH);
delay(7000);
digitalWrite(Lane1[0], LOW);
digitalWrite(Lane2[2], LOW);
digitalWrite(Lane1[1], HIGH);
digitalWrite(Lane2[1], HIGH);
delay(3000);
digitalWrite(Lane2[1], LOW);
digitalWrite(Lane1[1], LOW);
}
- Simulated Result using circuit.io for Traffic light controller.
Practical Implementation Result :
See also: What is Smart Parking? || Its Benefits || Solution Providers in India
Let us know what you think of Traffic Light Controller using Arduino in the comment section below.
If you like this post subscribe to our YouTube Channel for IoT video Tutorials. You can also find us on Twitter, Facebook, and Instagram for more updates.
and If you have smart product or service and looking for perfect audience then submit a guest post at IoTDunia and get to know in IoT world.
1 Review