#define CLK_PIN 2
#define DATA_PIN 3
static uint16_t state=0;
static uint8_t counter=0;
void setup() {
pinMode(CLK_PIN,INPUT);
pinMode(DATA_PIN,INPUT);
Serial.begin(9600);
Serial.println("Rotary Encoder KY-040");
}
void loop() {
delayMicroseconds(100);
state=(state<<1) | digitalRead(CLK_PIN) | 0xe000;
if (state==0xf000){
state=0x0000;
if(digitalRead(DATA_PIN))
counter++;
else
counter--;
Serial.println(counter);
}
}