// Pin yang digunakan
int buttonPin1 = 2; // Pin untuk pushbutton 1
int buttonPin2 = 3; // Pin untuk pushbutton 2
int ledPin1 = 9; // Pin untuk LED 1
int ledPin2 = 10; // Pin untuk LED 2
int ledPin3 = 11; // Pin untuk LED 3
int buzzerPin = 8; // Pin untuk buzzer
// Variabel untuk status pushbutton
int buttonState1 = 0;
int buttonState2 = 0;
void setup() {
// Konfigurasi pin sebagai input
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
// Konfigurasi pin sebagai output
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Membaca status pushbutton 1
buttonState1 = digitalRead(buttonPin1);
// Jika pushbutton 1 ditekan
if (buttonState1 == HIGH) {
// Menggerakkan lampu dari kiri ke kanan
for (int i = ledPin1; i <= ledPin3; i++) {
digitalWrite(i, HIGH);
delay(200); // Delay untuk efek bergerak
digitalWrite(i, LOW);
}
// Menghasilkan suara buzzer
tone(buzzerPin, 1000, 500); // Frekuensi dan durasi bunyi buzzer
delay(500); // Delay antara bunyi buzzer dan reset
noTone(buzzerPin); // Mematikan buzzer
}
// Membaca status pushbutton 2
buttonState2 = digitalRead(buttonPin2);
// Jika pushbutton 2 ditekan
if (buttonState2 == HIGH) {
// Menggerakkan lampu dengan perubahan nilai PWM dari kanan ke kiri
for (int dutyCycle = 255; dutyCycle >= 0; dutyCycle -= 10) {
analogWrite(ledPin1, dutyCycle);
analogWrite(ledPin2, dutyCycle);
analogWrite(ledPin3, dutyCycle);
delay(100); // Delay untuk efek pergeseran
}
}
}