const int buttonPin1 = A0; // Pin untuk push button 1
const int buttonPin2 = A1; // Pin untuk push button 2
int buttonState1 = 0; // Variabel untuk menyimpan status tombol 1 saat ini
int lastButtonState1 = 0; // Variabel untuk menyimpan status tombol 1 sebelumnya
int buttonState2 = 0; // Variabel untuk menyimpan status tombol 2 saat ini
int lastButtonState2 = 0; // Variabel untuk menyimpan status tombol 2 sebelumnya
const int ledHijauKiri = A2; // LED Hijau Kiri
const int ledHijauKanan = A3; // LED Hijau Kanan
const int ledKuningKiri[] = {A2, A4}; // LED Kuning Kiri
const int ledKuningKanan[] = {A3, A5}; // LED Kuning Kanan
void setup() {
// Inisialisasi komunikasi serial
Serial.begin(9600);
// Set pin A0 dan A1 sebagai input dengan pull-up resistor internal
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
// Baca status awal tombol
lastButtonState1 = digitalRead(buttonPin1);
lastButtonState2 = digitalRead(buttonPin2);
// Inisialisasi pin LED sebagai output
pinMode(ledHijauKiri, OUTPUT);
pinMode(ledHijauKanan, OUTPUT);
pinMode(ledKuningKiri[0], OUTPUT);
pinMode(ledKuningKiri[1], OUTPUT);
pinMode(ledKuningKanan[0], OUTPUT);
pinMode(ledKuningKanan[1], OUTPUT);
Serial.println("READY");
}
void loop() {
// Baca status tombol 1
buttonState1 = digitalRead(buttonPin1);
// Cek apakah status tombol 1 berubah
if (buttonState1 != lastButtonState1) {
// Cek apakah tombol 1 ditekan
if (buttonState1 == LOW) {
Serial.println("SLOT 1 OFF");
} else {
Serial.println("SLOT 1 ON");
}
// Simpan status tombol 1 saat ini sebagai status sebelumnya
lastButtonState1 = buttonState1;
}
// Baca status tombol 2
buttonState2 = digitalRead(buttonPin2);
// Cek apakah status tombol 2 berubah
if (buttonState2 != lastButtonState2) {
// Cek apakah tombol 2 ditekan
if (buttonState2 == LOW) {
Serial.println("SLOT 2 OFF");
} else {
Serial.println("SLOT 2 ON");
}
// Simpan status tombol 2 saat ini sebagai status sebelumnya
lastButtonState2 = buttonState2;
}
// Cek apakah ada data yang masuk dari serial
if (Serial.available() > 0) {
// Membaca data yang masuk sebagai string
String command = Serial.readStringUntil('\n');
// Menghapus karakter newline dari string
command.trim();
// Memproses perintah untuk LED Hijau Kiri
if (command == "LEDKIRIHIJAUON") {
digitalWrite(ledHijauKiri, HIGH); // Menyalakan LED Hijau Kiri
Serial.println("LED Hijau Kiri is now ON");
} else if (command == "LEDKIRIHIJAUOFF") {
digitalWrite(ledHijauKiri, LOW); // Mematikan LED Hijau Kiri
Serial.println("LED Hijau Kiri is now OFF");
}
// Memproses perintah untuk LED Kuning Kiri
else if (command == "LEDKIRIKUNINGON") {
digitalWrite(ledKuningKiri[0], HIGH); // Menyalakan LED Kuning Kiri, pin pertama
digitalWrite(ledKuningKiri[1], HIGH); // Menyalakan LED Kuning Kiri, pin kedua
Serial.println("LED Kuning Kiri is now ON");
} else if (command == "LEDKIRIKUNINGOFF") {
digitalWrite(ledKuningKiri[0], LOW); // Mematikan LED Kuning Kiri, pin pertama
digitalWrite(ledKuningKiri[1], LOW); // Mematikan LED Kuning Kiri, pin kedua
Serial.println("LED Kuning Kiri is now OFF");
}
// Memproses perintah untuk LED Hijau Kanan
else if (command == "LEDKANANHIJAUON") {
digitalWrite(ledHijauKanan, HIGH); // Menyalakan LED Hijau Kanan
Serial.println("LED Hijau Kanan is now ON");
} else if (command == "LEDKANANHIJAUOFF") {
digitalWrite(ledHijauKanan, LOW); // Mematikan LED Hijau Kanan
Serial.println("LED Hijau Kanan is now OFF");
}
// Memproses perintah untuk LED Kuning Kanan
else if (command == "LEDKANANKUNINGON") {
digitalWrite(ledKuningKanan[0], HIGH); // Menyalakan LED Kuning Kanan, pin pertama
digitalWrite(ledKuningKanan[1], HIGH); // Menyalakan LED Kuning Kanan, pin kedua
Serial.println("LED Kuning Kanan is now ON");
} else if (command == "LEDKANANKUNINGOFF") {
digitalWrite(ledKuningKanan[0], LOW); // Mematikan LED Kuning Kanan, pin pertama
digitalWrite(ledKuningKanan[1], LOW); // Mematikan LED Kuning Kanan, pin kedua
Serial.println("LED Kuning Kanan is now OFF");
} else {
Serial.println("Unknown command");
}
}
// Delay untuk debounce tombol
delay(50);
}