// Definisi Pin LED (Urutan dari Kiri ke Kanan: Lampu 1 - Lampu 5)
const int ledPins[] = {32, 33, 25, 26, 27};
const int jumlahLed = 5;
void setup() {
// Inisialisasi komunikasi serial
Serial.begin(115200);
// Inisialisasi semua pin sebagai OUTPUT
for (int i = 0; i < jumlahLed; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// --- 1. Menyala Bersamaan ---
Serial.println(">>> STATUS: Lampu 1, 2, 3, 4, 5 Aktif Bersamaan");
nyalakanSemua();
delay(1000);
Serial.println(">>> STATUS: Semua Lampu Padam");
matikanSemua();
delay(500);
// --- 2. Kiri ke Kanan ---
Serial.println(">>> STATUS: Menyala Satu-Satu dari Kiri ke Kanan");
for (int i = 0; i < jumlahLed; i++) {
digitalWrite(ledPins[i], HIGH);
// Menampilkan nomor lampu (i+1) yang sedang aktif
Serial.println(" [ON] Lampu " + String(i + 1) + " (Pin " + String(ledPins[i]) + ") Aktif");
delay(300);
}
matikanSemua();
delay(500);
// --- 3. Kanan ke Kiri ---
Serial.println(">>> STATUS: Menyala Satu-Satu dari Kanan ke Kiri");
for (int i = jumlahLed - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
// Menampilkan nomor lampu (i+1) yang sedang aktif
Serial.println(" [ON] Lampu " + String(i + 1) + " (Pin " + String(ledPins[i]) + ") Aktif");
delay(300);
}
matikanSemua();
delay(500);
// --- 4. Tengah ke Ujung ---
Serial.println(">>> STATUS: Menyala dari Tengah ke Ujung");
Serial.println(" [*] Lampu 3 Aktif (Tengah)");
digitalWrite(ledPins[2], HIGH);
delay(400);
Serial.println(" [*] Lampu 2 & 4 Aktif");
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[3], HIGH);
delay(400);
Serial.println(" [*] Lampu 1 & 5 Aktif (Ujung)");
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[4], HIGH);
delay(600);
matikanSemua();
Serial.println(">>> STATUS: Siklus Animasi Selesai");
Serial.println("----------------------------------------");
delay(1000);
}
// Fungsi pembantu untuk menyalakan semua LED
void nyalakanSemua() {
for (int i = 0; i < jumlahLed; i++) {
digitalWrite(ledPins[i], HIGH);
}
}
// Fungsi pembantu untuk mematikan semua LED
void matikanSemua() {
for (int i = 0; i < jumlahLed; i++) {
digitalWrite(ledPins[i], LOW);
}
}