#define reclk 3 //clock connected to pin 13 #define redata 4 //redata connected to pin 14 float recounter = 0; //recounter variable int state; //restate variable to sense movement int laststate; //variable to compare with previous state float finalval; void setup() { // put your setup code here, to run once: //setup input pin modes pinMode(reclk, INPUT); pinMode(redata, INPUT); //begin serial at 9600 baud rate //measure initial state laststate = digitalRead(reclk); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: //read current state then compare with previous state to see if there is movement state = digitalRead(reclk); if (state != laststate) { if(digitalRead(redata) != state) //clockwise vs anticlockwise { recounter = recounter+0.865; finalval=recounter/100; } else { recounter=recounter-0.865; finalval=recounter/100; } } //save current state as previous state laststate= state; Serial.print(finalval); Serial.println(" Meters"); }