// Deklarasi pin LED
int ledPins[] = {13, 12, 14, 27, 26, 25, 33, 32}; // Pin untuk LED
int numLeds = 8; // Jumlah LED
// Pin untuk pushbutton dan potensiometer
int buttonPin = 15; // Pin untuk pushbutton
int potPin = 34; // Pin untuk potensiometer
void setup() {
// Inisialisasi pin LED sebagai output
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], HIGH); // Semua LED menyala saat pertama kali dijalankan
}
// Inisialisasi pin pushbutton sebagai input
pinMode(buttonPin, INPUT_PULLUP);
// Inisialisasi serial monitor untuk debugging
Serial.begin(115200);
}
void loop() {
// Baca nilai dari pushbutton
int buttonState = digitalRead(buttonPin);
// Jika pushbutton ditekan, matikan semua LED
if (buttonState == LOW) {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW); // Matikan semua LED
}
} else {
// Baca nilai dari potensiometer (0-4095 untuk ESP32)
int potValue = analogRead(potPin);
// Hitung berapa banyak LED yang akan menyala berdasarkan nilai potensiometer
int numLedsOn = map(potValue, 0, 4095, 0, numLeds);
// Nyalakan LED sesuai dengan nilai potensiometer
for (int i = 0; i < numLeds; i++) {
if (i < numLedsOn) {
digitalWrite(ledPins[i], HIGH); // Nyalakan LED
} else {
digitalWrite(ledPins[i], LOW); // Matikan LED
}
}
}
// Tambahkan delay untuk menghindari bouncing pada pushbutton
delay(50);
}