#define ENCODER_A 2
#define ENCODER_B 3
#define ENCODER_SW 4
volatile int cnt=0;
int lastA;
void setup() {
pinMode(ENCODER_A, INPUT);
pinMode(ENCODER_B, INPUT);
pinMode(ENCODER_SW, INPUT);
Serial.begin(115200);
lastA=digitalRead(ENCODER_A);
}
void loop() {
int newA= digitalRead(ENCODER_A);
if(newA != lastA){ //엔코더 A의 상태 변화가 있으면
lastA=newA;// 이전(마지막) 엔코더 A의 상태 업데이트
int dtValue=digitalRead(ENCODER_B);
if(newA==LOW && dtValue== HIGH)
{
cnt++;
Serial.println("Rotated clockwise =>");
Serial.println(cnt);
}
if(newA=LOW && dtValue== LOW)
{
cnt--;
Serial.println("Rotated counterclockwise <=");
Serial.println(cnt);
}
}
}