Doble sensor hall

Hola amigos!! no soy muy ducho en la teria, por lo tal, tengo que recurrir a los que saben…
El proyecto trata sobre un sistema de adquisicion de datos en un rodillo inercial, con el cual puedo medir potencia en autos o motos (en mi caso es para motos)
Los datos necesarios para determinar la potencia en un rolo inercial es la aceleracion del rodillo y las rpm del motor.
Esto lo realizo en dos partes…por un lado la celeracion del rodillo la tengo solucionada…lo que hago es medir el tiempo y las rpm del rodillo a traves de un sensor hall…y esa data la pude pasar a un exel (PLX-DAQ).

const int pinSensor = 2;
const int pinLed   = 13; 
int estadoSensor   = 0;
int estadoAnterior = 0; 
int estadoLed      = 0; 
int rpm; 
int LABEL = 1; 
const unsigned long sampleTime=10;
float v; 


void setup() 
{    
  Serial.begin(9600);// Velocidad del Puerto
  pinMode(pinSensor, INPUT);  // elSensor como una entrada
  Serial.println("CLEARDATA");
Serial.println("LABEL,Tiempo, RPM,");
}
void loop()
{
  estadoSensor = digitalRead(pinSensor);// se lee lo que tiene el sensor y se compara con el valor anterior en este caso sera 0
  if (estadoSensor != estadoAnterior)
  {
     rpm=getRPM();
     v = (rpm*6.283183)/60; //velocidad angular = radianes por segundo = prm*pi*2/60 ;

    
     Serial.print("DATA,TIME,");
     Serial.println(v); 
     Serial.print(",");
     
        
     Serial.println();    
        }
   
}

// este es el metodo para hallar las revoluciones por minuto de nuestro motor
// se incluye la funcion 
//millis() que es aquella que llevara el tiempo desde que inicia el programa
int getRPM()
{
  int kount=0; //define la variable Kount y le asigna un valor de cero
  boolean kflag=LOW;
  unsigned long currentTime=0; //LA hora actual es cero..pone el cronometro en cero
  unsigned long startTime=millis(); //corre el timer en milisegundos
  
  while (currentTime<=sampleTime)// mientras si el tiempo actual es menor o igual al tiempo de muestra
  {
    if (digitalRead(pinSensor)==HIGH) //si el sentor esta high
    {  
      kflag=HIGH; //entonces el kflag esta high
    }
    if (digitalRead(pinSensor)==LOW && kflag==HIGH) //
    {
      kount++;
      kflag=LOW;
     
    }
    currentTime=millis()-startTime;
  }
  
  int kount2rpm = int(60000./float(sampleTime))*kount;
  return kount2rpm;
}

creo que funciona bien…ahora el tema es las rpm del motor…tengo un cirquitin que puedo medir las rpm de forma inductiva desde el cable de bujia y me devuelve un pulso de 5v o la otra opcion es poner un segundo sensor hall en el cigueñal y asi leer las rpm.
Por lo tanto lo que necesito seria…

1)como modifico el codigo
2)un poco mas complicada…cuando escribe en el excel en una columna pone el timepo, en la siguiente las rpm del rolo y necesitaria que en la tercer columna ponga las rpm del motor correspóndiente a ese momento en que se sucedio el giro del rolo

Espero haber sido claro y me puedan ayudar. Saludos