int pot = A0; // Deklarasi pin variabel pot untuk potensiometer pada pin A0
int button = 2; // Deklarasi pin variabel button untuk push button pada pin 2
int led1 = 10; // Deklarasi pin variabel led1 untuk LED pertama pada pin 10
int led2 = 11; // Deklarasi pin variabel led2 untuk LED kedua pada pin 11
int led3 = 12; // Deklarasi pin variabel led3 untuk LED ketiga pada pin 12
int activeLed = 0; // LED yang aktif
bool buttonState = false; // Keadaan tombol
bool lastButtonState = false; // Keadaan tombol sebelumnya
void setup() {
pinMode(button, INPUT_PULLUP); // Deklarasi mode button sebagai INPUT dengan pull-up resistor
pinMode(led1, OUTPUT); // Deklarasi mode led1 sebagai OUTPUT
pinMode(led2, OUTPUT); // Deklarasi mode led2 sebagai OUTPUT
pinMode(led3, OUTPUT); // Deklarasi mode led3 sebagai OUTPUT
Serial.begin(9600); // Komunikasi Serial pada baudrate 9600
}
void loop() {
buttonState = digitalRead(button); // Membaca keadaan tombol
// Pengecekan apakah tombol ditekan
if (buttonState == LOW && lastButtonState == HIGH) {
activeLed = (activeLed + 1) % 3; // Pindah ke LED berikutnya
// Mematikan semua LED
analogWrite(led1, 0);
analogWrite(led2, 0);
analogWrite(led3, 0);
}
lastButtonState = buttonState; // Update keadaan tombol sebelumnya
int angka = analogRead(pot); // Membaca nilai analog pada potensiometer
int cerah = map(angka, 0, 1023, 0, 255); // Konversi nilai analog 0 - 1023 menjadi 0 - 255 bit untuk kecerahan led
Serial.print("Potentiometer Value: ");
Serial.print(angka); // Menampilkan nilai potensiometer
Serial.print(" | Active LED: ");
Serial.println(activeLed); // Menampilkan LED yang aktif
// Mengatur kecerahan LED yang aktif
if (activeLed == 0) {
analogWrite(led1, cerah);
} else if (activeLed == 1) {
analogWrite(led2, cerah);
} else if (activeLed == 2) {
analogWrite(led3, cerah);
}
delay(100); // Menunggu sejenak
}