Calcolare distanza con encoder

Vorrei calcolare la distanza percorsa dal mio robot che ha delle ruote con circonferenza di 148 cm.
Al momento, riesco a calcolare correttamente il numero di giri dei motori con questo codice:

void setup()
{
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);    // enable internal pullup (if Hall sensor needs it)
  attachInterrupt(sensorInterrupt, sensorIsr, RISING);
  Serial.begin(9600);
  lastPulseTime = micros();
  timeoutCounter = 0;
}

void sensorIsr()
{
  unsigned long now = micros();
  interval = now - lastPulseTime;
  lastPulseTime = now;
  timeoutCounter = timeoutValue;
  count++; <-- PULSES COUNTER, IS IT CORRECT?
}

void loop()
{
  Serial.print(" RPM ");
  unsigned int rpm;
  if (timeoutCounter != 0)
  {
    noInterrupts();
    --timeoutCounter;
    unsigned long copyInterval = interval;
    interrupts();
    rpm = (unsigned int)(60000000UL/copyInterval);
  }
  else
  {
    rpm = 0;
  }
 real_rpm = (rpm/216)/2;
  Serial.println(real_rpm);
  Serial.println(count);
  delay(10);
}

Vorrei usare la variabile count per contare il numero di pulsazioni (2 ogni giro) per poi moltiplicarle per la circonferenza, solo che ho notato, stampando il valore di count, che lavariabile ha un numero che cresce velocemente e vorrei sapere se è corretto che sia così.
Posso semplicemente usare il numero di giri al minuto e moltiplicarlo per la circonferenza?

Dimenticavo: uso un riduttore con ratio di 1/216.

Rifai il blocco funzione dell'encoder, ci conti i singoli impulsi e poi la conversione impulsi/spazio la fai nel loop. Tempo fa trovai un link (mi sembra al playgroung) dove spiegava molto bene come gestire un encoder ma non lo trovo più.