const int encoderPinA = 2;
const int encoderPinB = 3;
float Angle=0.0;
int encoderPos = 0.0;
void encoderA()
{
int stateA = digitalRead(encoderPinA);
int stateB = digitalRead(encoderPinB);
if (stateA != stateB)
{
encoderPos++;
}
else
{
encoderPos--;
}
}
void encoderB()
{
int stateA = digitalRead(encoderPinA);
int stateB = digitalRead(encoderPinB);
if (stateA == stateB)
{
encoderPos++;
}
else
{
encoderPos--;
}
}
void setup()
{
Serial.begin(115200);
pinMode(encoderPinA, INPUT);
pinMode(encoderPinB, INPUT);
attachInterrupt(digitalPinToInterrupt(encoderPinA), encoderA, CHANGE);
attachInterrupt(digitalPinToInterrupt(encoderPinB), encoderB, CHANGE);
}
void loop()
{
Angle=encoderPos*(360.0/2048.0)/(64.0/34.0);
Serial.print("Angle is:");
Serial.println(Angle);
}