// Definisi pin untuk LED, pushbutton, dan potensiometer
const int ledPins[] = {34, 35, 32, 33, 25, 26, 27, 14}; // Pin-pin untuk LED
const int buttonPin = 4; // Pin untuk pushbutton
const int potPin = 22; // Pin untuk potensiometer (input analog)
// Variabel untuk menyimpan status LED dan input dari potensiometer
int ledState = HIGH; // Awal kondisi semua LED hidup
int buttonState;
int previousButtonState = HIGH;
int potValue;
void setup() {
// Inisialisasi pin LED sebagai output
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], ledState); // Awal semua LED menyala
}
// Inisialisasi pushbutton sebagai input
pinMode(buttonPin, INPUT_PULLUP); // Gunakan resistor pull-up internal
// Inisialisasi pin potensiometer sebagai input
pinMode(potPin, INPUT);
}
void loop() {
// Membaca status pushbutton
buttonState = digitalRead(buttonPin);
// Cek apakah pushbutton ditekan (low aktif)
if (buttonState == LOW && previousButtonState == HIGH) {
// Jika tombol ditekan, matikan semua LED
ledState = LOW;
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], ledState);
}
}
// Simpan status pushbutton sebelumnya untuk debouncing
previousButtonState = buttonState;
// Membaca nilai potensiometer
potValue = analogRead(potPin);
// Hitung jumlah LED yang menyala berdasarkan nilai potensiometer
int numberOfLedsToLight = map(potValue, 0, 4095, 0, 8);
// Jika pushbutton tidak ditekan, kontrol nyala LED berdasarkan potensiometer
if (buttonState == HIGH) {
for (int i = 0; i < 8; i++) {
if (i < numberOfLedsToLight) {
digitalWrite(ledPins[i], HIGH); // Nyalakan LED sesuai jumlah
} else {
digitalWrite(ledPins[i], LOW); // Matikan LED lainnya
}
}
}
}