#define ENC_CLK 4
#define ENC_DT 2
#define LED 5
int counter = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
// setup pins
pinMode(ENC_CLK, INPUT);
pinMode(ENC_DT, INPUT);
pinMode(LED, OUTPUT);
// adding interrupt feature
attachInterrupt(digitalPinToInterrupt(ENC_CLK), readEncValue, FALLING);
}
// interrupt service routine
void readEncValue() {
int dtValue = digitalRead(ENC_DT);
if (dtValue == HIGH) {
digitalWrite(LED, HIGH);
counter++;
Serial.print("Movement is in clockwise direction");
Serial.println(counter);
}
if (dtValue == LOW) {
digitalWrite(LED, LOW);
counter--;
Serial.print("Movement is in counter clockwise direction");
Serial.println(counter);
}
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}