const int ledPin[] = {2, 4, 5, 12, 13, 14, 15, 18, 19, 21, 22, 23, 25, 26, 27}; // pin LED pada ESP32
const int numLed = 15; // jumlah LED
int offDelay1 = 500;
int offDelay2 = 1000; // delay 500ms untuk setiap lampu mati
void setup() {
for (int i = 0; i < numLed; i++) {
pinMode(ledPin[i], OUTPUT); // setiap pin LED sebagai output
}
}
void loop() {
// Mode 1 : menyala semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 2 : mati semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], LOW); // matikan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 3 : lampu 5-11 hidup, sisanya menyala
for (int i = 0; i < numLed; i++) {
if (i >= 4 && i <= 10) { // lampu 5-11
digitalWrite(ledPin[i], HIGH); // nyalakan LED
} else {
digitalWrite(ledPin[i], LOW); // matikan LED
}
}
delay(offDelay1); // tunda selama 1 detik
// Mode 4 : lampu 5-11 mati, sisanya menyala
for (int i = 0; i < numLed; i++) {
if (i >= 4 && i <= 10) { // lampu 5-11
digitalWrite(ledPin[i], LOW); // matikan LED
} else {
digitalWrite(ledPin[i], HIGH); // nyalakan LED
}
}
delay(offDelay1); // tunda selama 1 detik
// Mode 5: menyala semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 6 :
// Mode pertama: lampu hidup semua
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan lampu ke-i
}
delay(offDelay1); // tunda selama 1 detik
// Mode kedua: lampu mati secara bergantian dari LED 7, 6, 5, 4, 3, 2, 1 dan 9, 10, 11, 12, 13, 14, 15
for (int i = 6; i >= 0; i--) {
digitalWrite(ledPin[6 - i], LOW); // matikan lampu dari LED 1 ke 7
digitalWrite(ledPin[8 + i], LOW); // matikan lampu dari LED 15 ke 9
delay(200); // tunda sesuai delay yang ditentukan
}
delay(offDelay1); // tambahan delay setelah semua lampu mati
// Mode 7: Menyala lampu ke 8 dan bergantian
// Mode lampu hidup dan mati bergantian
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[7], HIGH); // nyalakan lampu ke-i
}
delay(offDelay1); // tunda selama 1 detik
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[7], LOW); // nyalakan lampu ke-i
}
delay(offDelay1); // tunda selama 1 detik
for (int i = 0; i <= 6; i++) {
digitalWrite(ledPin[6 - i], HIGH); // hidupkan lampu dari LED 7 ke 1
digitalWrite(ledPin[8 + i], HIGH); // hidupkan lampu dari LED 9 ke 15
delay(offDelay2); // tunda sesuai delay yang ditentukan
digitalWrite(ledPin[6 - i], LOW); // matikan lampu dari LED 7 ke 1
digitalWrite(ledPin[8 + i], LOW); // matikan lampu dari LED 9 ke 15
delay(100); // tunda sesuai delay yang ditentukan
}
// Tambahan delay setelah semua lampu hidup dan mati
delay(offDelay1);
// Mode 8 : menyala semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 9 : mati semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], LOW); // matikan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 10 : menyala semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 11 : hidupkan lampu 2, 4, 6, 8, 10, 11, 12, 14 dan matikan sisanya
for (int i = 0; i < numLed; i++) {
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 9 || i == 10 || i == 11 || i == 13) {
digitalWrite(ledPin[i], HIGH); // nyalakan lampu
} else {
digitalWrite(ledPin[i], LOW); // matikan lampu
}
}
delay(offDelay1); // tunda selama 1 detik
// Mode 12 : hidupkan lampu 1, 3, 5, 7, 9, 11, 13, 15 dan matikan sisanya
for (int i = 0; i < numLed; i++) {
if (i == 0 || i == 2 || i == 4 || i == 6 || i == 8 || i == 10 || i == 12 || i == 14) {
digitalWrite(ledPin[i], HIGH); // nyalakan lampu
} else {
digitalWrite(ledPin[i], LOW); // matikan lampu
}
}
delay(offDelay1); // tunda selama 1 detik
// Mode 13 : mati semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], LOW); // matikan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 14 :
// Mode pertama: lampu hidup semua
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan lampu ke-i
}
delay(offDelay1); // tunda selama 1 detik
// Mode 14 :
// Mode pertama: lampu hidup semua
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan lampu ke-i
}
delay(offDelay1); // tunda selama 1 detik
// Mode kedua: lampu mati secara bergantian dari LED 7, 6, 5, 4, 3, 2, 1 dan 9, 10, 11, 12, 13, 14, 15
for (int i = 6; i >= 0; i--) {
digitalWrite(ledPin[6 - i], LOW); // matikan lampu dari LED 1 ke 7
digitalWrite(ledPin[8 + i], LOW); // matikan lampu dari LED 15 ke 9
delay(200); // tunda sesuai delay yang ditentukan
}
delay(offDelay1); // tambahan delay setelah semua lampu mati
// Mode 15: Menyala lampu ke 8 dan bergantian
// Mode lampu hidup dan mati bergantian
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[7], HIGH); // nyalakan lampu ke-i
}
delay(500); // tunda selama 1 detik
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[7], LOW); // nyalakan lampu ke-i
}
delay(500); // tunda selama 1 detik
for (int i = 0; i <= 6; i++) {
digitalWrite(ledPin[6 - i], HIGH); // hidupkan lampu dari LED 7 ke 1
digitalWrite(ledPin[8 + i], HIGH); // hidupkan lampu dari LED 9 ke 15
delay(offDelay2); // tunda sesuai delay yang ditentukan
digitalWrite(ledPin[6 - i], LOW); // matikan lampu dari LED 7 ke 1
digitalWrite(ledPin[8 + i], LOW); // matikan lampu dari LED 9 ke 15
delay(100); // tunda sesuai delay yang ditentukan
}
// Tambahan delay setelah semua lampu hidup dan mati
delay(offDelay1);
// Mode 16 : mati semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], LOW); // matikan LED
}
delay(offDelay1); // tunda selama 1 detik
// Mode 17 : menyala semua LED
for (int i = 0; i < numLed; i++) {
digitalWrite(ledPin[i], HIGH); // nyalakan LED
}
delay(offDelay1); // tunda selama 1 detik
}