// Traffic Light using Arduino Nano
// Pin numbers for the LEDs
const int buttonPin = 1;
const int redLED1 = 2;
const int yellowLED1 = 3;
const int greenLED1 = 4;
const int redLED2 = 5;
const int yellowLED2 = 6;
const int greenLED2 = 7;
const int redLED3 = 8;
const int yellowLED3 = 9;
const int greenLED3 = 10;
const int redLED4 = 11;
const int yellowLED4 = 12;
const int greenLED4 = 13;
int numb = 1;
int pres = 0;
void setup() {
// Initialize the pins as outputs
pinMode(buttonPin, INPUT);
pinMode(redLED1, OUTPUT);
pinMode(yellowLED1, OUTPUT);
pinMode(greenLED1, OUTPUT);
pinMode(redLED2, OUTPUT);
pinMode(yellowLED2, OUTPUT);
pinMode(greenLED2, OUTPUT);
pinMode(redLED3, OUTPUT);
pinMode(yellowLED3, OUTPUT);
pinMode(greenLED3, OUTPUT);
pinMode(redLED4, OUTPUT);
pinMode(yellowLED4, OUTPUT);
pinMode(greenLED4, OUTPUT);
}
void loop() {
ButtonScan();
switch (numb) {
case 1:
WARNING_1();
break;
case 2:
WARNING_2();
break;
// Green2 ON
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, HIGH);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(8000); // Wait for 8 seconds
// Transisi kedip
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, HIGH);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, HIGH);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, HIGH);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, LOW);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
// All red
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Transisi
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, HIGH);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Green3 ON
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, HIGH);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(8000); // Wait for 8 seconds
// Transisi kedip
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, HIGH);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, HIGH);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, HIGH);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, LOW);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
// All red
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Transisi
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, HIGH);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Green4 ON
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, HIGH);
delay(8000); // Wait for 8 seconds
// Transisi kedip
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, HIGH);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, HIGH);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, HIGH);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, LOW);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
// All red
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Transisi
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, HIGH);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Green1 ON
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, HIGH);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(8000); // Wait for 8 seconds
// Transisi kedip
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, HIGH);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, HIGH);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, HIGH);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
digitalWrite(redLED1, LOW);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(500);
// All red
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, LOW);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
// Transisi
digitalWrite(redLED1, HIGH);
digitalWrite(yellowLED1, LOW);
digitalWrite(greenLED1, LOW);
digitalWrite(redLED2, HIGH);
digitalWrite(yellowLED2, HIGH);
digitalWrite(greenLED2, LOW);
digitalWrite(redLED3, HIGH);
digitalWrite(yellowLED3, LOW);
digitalWrite(greenLED3, LOW);
digitalWrite(redLED4, HIGH);
digitalWrite(yellowLED4, LOW);
digitalWrite(greenLED4, LOW);
delay(3000); // Wait for 3 seconds
}