#define ENCODER_CLK 2
#define ENCODER_DT 3
int angka = 0;
int LEDMERAH = 5;
int LEDHIJAU = 6;
int LEDBIRU = 7;
void setup() {
Serial.begin(115200);
pinMode(ENCODER_CLK, INPUT);
pinMode(ENCODER_DT, INPUT);
pinMode(LEDMERAH, OUTPUT);
pinMode(LEDHIJAU, OUTPUT);
pinMode(LEDBIRU, OUTPUT);
}
int lastClk = HIGH;
void loop() {
int newClk = digitalRead(ENCODER_CLK);
if (newClk != lastClk) {
// There was a change on the CLK pin
lastClk = newClk;
int dtValue = digitalRead(ENCODER_DT);
if (newClk == LOW && dtValue == HIGH) {
if (angka < 3) {
angka += 1;
Serial.print("Angka : ");
Serial.println(angka);
}
}
if (newClk == LOW && dtValue == LOW) {
if (angka > -3) {
angka -= 1;
Serial.print("Angka : ");
Serial.println(angka);
}
}
// Mengatur LED sesuai dengan nilai angka
if (angka == 0) {
digitalWrite(LEDMERAH, LOW);
digitalWrite(LEDHIJAU, LOW);
digitalWrite(LEDBIRU, LOW);
}if (angka == 1 || angka == -1) {
digitalWrite(LEDMERAH, HIGH);
digitalWrite(LEDHIJAU, LOW);
digitalWrite(LEDBIRU, LOW);
} else if (angka == 2 || angka == -2) {
digitalWrite(LEDMERAH, LOW);
digitalWrite(LEDHIJAU, HIGH);
digitalWrite(LEDBIRU, LOW);
} else if (angka == 3 || angka == -3) {
digitalWrite(LEDMERAH, LOW);
digitalWrite(LEDHIJAU, LOW);
digitalWrite(LEDBIRU, HIGH);
}
}
}