/*
Nama : Anishah Kartari
Nim : 22323009
Membuat delapan LED menyala dengan pola yang berbeda-beda.
*/
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Making sure the array has 8 elements
void setup()
{
for (int i = 0; i < 8; i++)
{
pinMode(ledPins[i], OUTPUT); // Set all LED pins as OUTPUT
}
}
void loop()
{
oneAfterAnother(); // Nyalakan semua LED secara bergantian
oneOnAtATime(); // Nyalakan LED satu per satu secara bergantian
pingPong(); // Sama dengan oneOnAtATime() tapi berganti arah ketika nyala LED sampai keujung
marquee(); // Lampu kejar seperti yang ada di pertunjukan teater
randomLED(); // Membuat LED-LED berkedip secara acak
}
void oneAfterAnother()
{
int delayTime = 300; // Jeda dalam milliseconds untuk berhenti antara LED
for (int index = 0; index < 8; index++)
{
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
delay(delayTime);
}
for (int index = 7; index >= 0; index--)
{
digitalWrite(ledPins[index], LOW); // Mematikan LED
delay(delayTime);
}
}
void oneOnAtATime()
{
int delayTime = 500; // Jeda dalam milliseconds untuk berhenti antara LED
for (int index = 0; index < 8; index++)
{
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
delay(delayTime);
digitalWrite(ledPins[index], LOW); // Mematikan LED
}
for (int index = 7; index >= 0; index--)
{
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
delay(delayTime);
digitalWrite(ledPins[index], LOW); // Mematikan LED
}
}
void pingPong()
{
int delayTime = 400; // Jeda dalam milliseconds untuk berhenti antara LED
for (int index = 0; index < 8; index++)
{
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
delay(delayTime);
digitalWrite(ledPins[index], LOW); // Mematikan LED
}
for (int index = 8; index >= 0; index--)
{
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
delay(delayTime);
digitalWrite(ledPins[index], LOW); // Mematikan LED
}
}
void marquee()
{
int delayTime = 400; // Jeda dalam milliseconds untuk berhenti antara LED
for (int index = 0; index < 4; index++)
{
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
digitalWrite(ledPins[index + 4], HIGH); // Lewati empat LED, dan nyalakan LED tersebut
delay(delayTime); // Jeda untuk memperlambat perpindahan
digitalWrite(ledPins[index], LOW); // Mematikan LED
digitalWrite(ledPins[index + 4], LOW); // Lewati empat LED, dan matikan LED tersebut
}
}
void randomLED()
{
int index = random(9); // Memilih angka secara acak antara 0 sampai 7
int delayTime = random(50, 500); // Memilih angka acak untuk jeda waktu antara LED
digitalWrite(ledPins[index], HIGH); // Menyalakan LED
delay(delayTime); // Jeda untuk memperlambat
digitalWrite(ledPins[index], LOW); // Mematikan LED
}