const int lampu_merah_utara = 2;
const int lampu_kuning_utara = 3;
const int lampu_hijau_utara = 4;
const int lampu_merah_timur = 5;
const int lampu_kuning_timur = 6;
const int lampu_hijau_timur = 7;
const int lampu_merah_selatan = 8;
const int lampu_kuning_selatan = 9;
const int lampu_hijau_selatan = 10;
const int lampu_merah_barat = 11;
const int lampu_kuning_barat = 12;
const int lampu_hijau_barat = 13;
bool case_5 = false;
void setup() {
pinMode(lampu_merah_utara, OUTPUT);
pinMode(lampu_kuning_utara, OUTPUT);
pinMode(lampu_hijau_utara, OUTPUT);
pinMode(lampu_merah_timur, OUTPUT);
pinMode(lampu_kuning_timur, OUTPUT);
pinMode(lampu_hijau_timur, OUTPUT);
pinMode(lampu_merah_selatan, OUTPUT);
pinMode(lampu_kuning_selatan, OUTPUT);
pinMode(lampu_hijau_selatan, OUTPUT);
pinMode(lampu_merah_barat, OUTPUT);
pinMode(lampu_kuning_barat, OUTPUT);
pinMode(lampu_hijau_barat, OUTPUT);
Serial.begin(9600);
Serial.println("Pilih salah satu opsi:");
Serial.println("1. Nyalakan lampu LED merah");
Serial.println("2. Matikan lampu LED merah");
Serial.println("3. Nyalakan semua lampu LED");
Serial.println("4. Jalankan lampu LED");
Serial.println("5. Lampu LED flip flop 10x");
Serial.println("6. Matikan semua lampu LED");
}
void loop() {
if (Serial.available() > 0) {
int angka = Serial.parseInt();
switch (angka) {
case 1:
digitalWrite(lampu_merah_utara, HIGH);
break;
case 2:
digitalWrite(lampu_merah_utara, LOW);
break;
case 3:
digitalWrite(lampu_merah_utara, HIGH);
digitalWrite(lampu_kuning_utara, HIGH);
digitalWrite(lampu_hijau_utara, HIGH);
digitalWrite(lampu_merah_timur, HIGH);
digitalWrite(lampu_kuning_timur, HIGH);
digitalWrite(lampu_hijau_timur, HIGH);
digitalWrite(lampu_merah_selatan, HIGH);
digitalWrite(lampu_kuning_selatan, HIGH);
digitalWrite(lampu_hijau_selatan, HIGH);
digitalWrite(lampu_merah_barat, HIGH);
digitalWrite(lampu_kuning_barat, HIGH);
digitalWrite(lampu_hijau_barat, HIGH);
break;
case 4:
digitalWrite(lampu_merah_utara, HIGH);
delay(500);
digitalWrite(lampu_kuning_utara, HIGH);
delay(500);
digitalWrite(lampu_hijau_utara, HIGH);
delay(500);
digitalWrite(lampu_merah_timur, HIGH);
delay(500);
digitalWrite(lampu_kuning_timur, HIGH);
delay(500);
digitalWrite(lampu_hijau_timur, HIGH);
delay(500);
digitalWrite(lampu_merah_selatan, HIGH);
delay(500);
digitalWrite(lampu_kuning_selatan, HIGH);
delay(500);
digitalWrite(lampu_hijau_selatan, HIGH);
delay(500);
digitalWrite(lampu_merah_barat, HIGH);
delay(500);
digitalWrite(lampu_kuning_barat, HIGH);
delay(500);
digitalWrite(lampu_hijau_barat, HIGH);
delay(500);
break;
case 5:
case_5 = true;
while (case_5) {
for (int i = 0; i < 100; ++i) {
digitalWrite(lampu_merah_utara, HIGH);
digitalWrite(lampu_kuning_utara, HIGH);
digitalWrite(lampu_hijau_utara, HIGH);
digitalWrite(lampu_merah_timur, HIGH);
digitalWrite(lampu_kuning_timur, HIGH);
digitalWrite(lampu_hijau_timur, HIGH);
digitalWrite(lampu_merah_selatan, HIGH);
digitalWrite(lampu_kuning_selatan, HIGH);
digitalWrite(lampu_hijau_selatan, HIGH);
digitalWrite(lampu_merah_barat, HIGH);
digitalWrite(lampu_kuning_barat, HIGH);
digitalWrite(lampu_hijau_barat, HIGH);
delay(200);
digitalWrite(lampu_merah_utara, LOW);
digitalWrite(lampu_kuning_utara, LOW);
digitalWrite(lampu_hijau_utara, LOW);
digitalWrite(lampu_merah_timur, LOW);
digitalWrite(lampu_kuning_timur, LOW);
digitalWrite(lampu_hijau_timur, LOW);
digitalWrite(lampu_merah_selatan, LOW);
digitalWrite(lampu_kuning_selatan, LOW);
digitalWrite(lampu_hijau_selatan, LOW);
digitalWrite(lampu_merah_barat, LOW);
digitalWrite(lampu_kuning_barat, LOW);
digitalWrite(lampu_hijau_barat, LOW);
delay(200);
if (Serial.available() > 0) {
char angka = Serial.read();
if (angka == '1') {
case_5 = false;
digitalWrite(lampu_merah_utara, HIGH);
break;
} else if (angka == '2') {
case_5 = false;
digitalWrite(lampu_merah_utara, LOW);
break;
} else if (angka == '3') {
case_5 = false;
digitalWrite(lampu_merah_utara, HIGH);
digitalWrite(lampu_kuning_utara, HIGH);
digitalWrite(lampu_hijau_utara, HIGH);
digitalWrite(lampu_merah_timur, HIGH);
digitalWrite(lampu_kuning_timur, HIGH);
digitalWrite(lampu_hijau_timur, HIGH);
digitalWrite(lampu_merah_selatan, HIGH);
digitalWrite(lampu_kuning_selatan, HIGH);
digitalWrite(lampu_hijau_selatan, HIGH);
digitalWrite(lampu_merah_barat, HIGH);
digitalWrite(lampu_kuning_barat, HIGH);
digitalWrite(lampu_hijau_barat, HIGH);
break;
} else if (angka == '4') {
case_5 = false;
digitalWrite(lampu_merah_utara, HIGH);
delay(500);
digitalWrite(lampu_kuning_utara, HIGH);
delay(500);
digitalWrite(lampu_hijau_utara, HIGH);
delay(500);
digitalWrite(lampu_merah_timur, HIGH);
delay(500);
digitalWrite(lampu_kuning_timur, HIGH);
delay(500);
digitalWrite(lampu_hijau_timur, HIGH);
delay(500);
digitalWrite(lampu_merah_selatan, HIGH);
delay(500);
digitalWrite(lampu_kuning_selatan, HIGH);
delay(500);
digitalWrite(lampu_hijau_selatan, HIGH);
delay(500);
digitalWrite(lampu_merah_barat, HIGH);
delay(500);
digitalWrite(lampu_kuning_barat, HIGH);
delay(500);
digitalWrite(lampu_hijau_barat, HIGH);
delay(500);
break;
} else if (angka == '6') {
case_5 = false;
break;
}
}
}
}
break;
case 6:
digitalWrite(lampu_merah_utara, LOW);
digitalWrite(lampu_kuning_utara, LOW);
digitalWrite(lampu_hijau_utara, LOW);
digitalWrite(lampu_merah_timur, LOW);
digitalWrite(lampu_kuning_timur, LOW);
digitalWrite(lampu_hijau_timur, LOW);
digitalWrite(lampu_merah_selatan, LOW);
digitalWrite(lampu_kuning_selatan, LOW);
digitalWrite(lampu_hijau_selatan, LOW);
digitalWrite(lampu_merah_barat, LOW);
digitalWrite(lampu_kuning_barat, LOW);
digitalWrite(lampu_hijau_barat, LOW);
break;
default:
break;
}
}
}