const int leftLedPins[] = {8, 9, 10}; // Pin LED di sisi kiri
const int rightLedPins[] = {11, 12, 13}; // Pin LED di sisi kanan
const int totalLeftLEDs = sizeof(leftLedPins) / sizeof(leftLedPins[0]); // Jumlah LED di sisi kiri
const int totalRightLEDs = sizeof(rightLedPins) / sizeof(rightLedPins[0]); // Jumlah LED di sisi kanan
void setup() {
// Inisialisasi pin sebagai output
for (int i = 0; i < totalLeftLEDs; i++) {
pinMode(leftLedPins[i], OUTPUT);
}
for (int i = 0; i < totalRightLEDs; i++) {
pinMode(rightLedPins[i], OUTPUT);
}
}
void loop() {
int leftMiddleLED = totalLeftLEDs - 1; // Menentukan LED tengah di sisi kiri
int rightMiddleLED = 0; // Menentukan LED tengah di sisi kanan
int leftDirection = -1; // Arah awal pergerakan di sisi kiri
int rightDirection = 1; // Arah awal pergerakan di sisi kanan
// Loop untuk membuat LED bergerak dari tepi ke tengah dan kembali lagi di kedua sisi
while(true) {
// Sisi kiri
for (int i = 0; i < totalLeftLEDs; i++) {
digitalWrite(leftLedPins[i], LOW); // Matikan semua LED di sisi kiri
}
digitalWrite(leftLedPins[leftMiddleLED], HIGH); // Nyalakan LED tengah di sisi kiri
leftMiddleLED += leftDirection; // Geser ke posisi berikutnya
if (leftMiddleLED == 0 || leftMiddleLED == totalLeftLEDs - 1) {
leftDirection *= -1; // Balik arah jika mencapai tepi
}
delay(100); // Waktu tunda
// Sisi kanan
for (int i = 0; i < totalRightLEDs; i++) {
digitalWrite(rightLedPins[i], LOW); // Matikan semua LED di sisi kanan
}
digitalWrite(rightLedPins[rightMiddleLED], HIGH); // Nyalakan LED tengah di sisi kanan
rightMiddleLED += rightDirection; // Geser ke posisi berikutnya
if (rightMiddleLED == 0 || rightMiddleLED == totalRightLEDs - 1) {
rightDirection *= -1; // Balik arah jika mencapai tepi
}
delay(100); // Waktu tunda
}
}