c++
const int merah1 = 2; // Pin digital untuk lampu merah arah 1
const int kuning1 = 3; // Pin digital untuk lampu kuning arah 1
const int hijau1 = 4; // Pin digital untuk lampu hijau arah 1
const int merah2 = 5; // Pin digital untuk lampu merah arah 2
const int kuning2 = 6; // Pin digital untuk lampu kuning arah 2
const int hijau2 = 7; // Pin digital untuk lampu hijau arah 2
const int segA = 8; // Pin digital untuk segmen A
const int segB = 9; // Pin digital untuk segmen B
const int segC = 10; // Pin digital untuk segmen C
const int segD = 11; // Pin digital untuk segmen D
const int segE = 12; // Pin digital untuk segmen E
const int segF = 13; // Pin digital untuk segmen F
const int segG = A0; // Pin analog untuk segmen G
void setup() {
// Set pin lampu sebagai output
pinMode(merah1, OUTPUT);
pinMode(kuning1, OUTPUT);
pinMode(hijau1, OUTPUT);
pinMode(merah2, OUTPUT);
pinMode(kuning2, OUTPUT);
pinMode(hijau2, OUTPUT);
// Set pin 7-segment display sebagai output
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
}
void loop() {
// Arah 1: Merah
digitalWrite(merah1, HIGH);
digitalWrite(kuning1, LOW);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, LOW);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
for (int i = 5; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 1: Kuning
digitalWrite(merah1, HIGH);
digitalWrite(kuning1, HIGH);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, LOW);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
for (int i = 2; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 1: Hijau
digitalWrite(merah1, LOW);
digitalWrite(kuning1, LOW);
digitalWrite(hijau1, HIGH);
digitalWrite(merah2, HIGH);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, LOW);
for (int i = 5; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 1: Kuning
digitalWrite(merah1, LOW);
digitalWrite(kuning1, HIGH);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, HIGH);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, LOW);
for (int i = 2; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 2: Merah
digitalWrite(merah1, LOW);
digitalWrite(kuning1, LOW);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, HIGH);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
for (int i = 5; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 2: Kuning
digitalWrite(merah1, LOW);
digitalWrite(kuning1, LOW);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, HIGH);
digitalWrite(kuning2, HIGH);
digitalWrite(hijau2, LOW);
for (int i = 2; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 2: Hijau
digitalWrite(merah1, HIGH);
digitalWrite(kuning1, LOW);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, LOW);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
for (int i = 5; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
// Arah 2: Kuning
digitalWrite(merah1, HIGH);
digitalWrite(kuning1, HIGH);
digitalWrite(hijau1, LOW);
digitalWrite(merah2, LOW);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
for (int i = 2; i > 0; i--) {
tampilAngka(i);
delay(1000); // Tunggu 1 detik
}
}
void tampilAngka(int angka) {
switch (angka) {
case 0:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, LOW);
break;
case 1:
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;
case 2:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, LOW);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
break;
case 3:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
break;
case 4:
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 5:
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 6:
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 7:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;
case 8:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 9:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
}
}