void setup() {
// Traffic lights
pinMode(2, OUTPUT); // Red
pinMode(3, OUTPUT); // Yellow
pinMode(4, OUTPUT); // Green
// 7-segment display
pinMode(5, OUTPUT); // a
pinMode(6, OUTPUT); // b
pinMode(7, OUTPUT); // c
pinMode(8, OUTPUT); // d
pinMode(9, OUTPUT); // e
pinMode(10, OUTPUT); // f
pinMode(11, OUTPUT); // g
}
void loop() {
// Green ON
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
countdown(); // 9 to 0
digitalWrite(4, LOW);
// Yellow blinks 3 times
for (int i = 0; i < 3; i++) {
digitalWrite(3, HIGH);
delay(500);
digitalWrite(3, LOW);
delay(500);
}
// Red blinks 3 times
for (int i = 0; i < 3; i++) {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}
// Red ON for 3 seconds
digitalWrite(2, HIGH);
showDigit0();
delay(3000);
}
// Functions for each digit (without array)
void showDigit0() {
digitalWrite(5, HIGH); // a
digitalWrite(6, HIGH); // b
digitalWrite(7, HIGH); // c
digitalWrite(8, HIGH); // d
digitalWrite(9, HIGH); // e
digitalWrite(10, HIGH); // f
digitalWrite(11, LOW); // g
}
void showDigit1() {
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void showDigit2() {
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
void showDigit3() {
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
void showDigit4() {
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
}
void showDigit5() {
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
}
void showDigit6() {
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
}
void showDigit7() {
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void showDigit8() {
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
}
void showDigit9() {
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
}
void countdown() {
showDigit9(); delay(1000);
showDigit8(); delay(1000);
showDigit7(); delay(1000);
showDigit6(); delay(1000);
showDigit5(); delay(1000);
showDigit4(); delay(1000);
showDigit3(); delay(1000);
showDigit2(); delay(1000);
showDigit1(); delay(1000);
showDigit0(); delay(1000);
}