Teste o código abaixo e copie o que está no Monitor Serial e cole aqui, falando o que era esperado:
const unsigned long TempoAmostragem = 60000UL; //Milisegundos
volatile unsigned int NumeroVoltas = 0;
unsigned int RPM = 0;
unsigned int Velocidade = 0;
unsigned long TemporizadorRPM = 0;
void setup() {
Serial.begin(9600);
attachInterrupt(0, ContadorVoltas, RISING);
}
void loop() {
if(millis() - TemporizadorRPM >= TempoAmostragem){
RPM = (NumeroVoltas) * (60000UL / TempoAmostragem);
NumeroVoltas = 0;
TemporizadorRPM = millis();
Velocidade = (RPM * 0.0015708f); // 0.0015708 = 0.015 * 0.10472
Serial.print("RPM =\t");
Serial.print(RPM);
Serial.print("\t Velocidade =\t");
Serial.print(Velocidade);
Serial.print(" km/h");
Serial.println();
}
}
void ContadorVoltas() {
NumeroVoltas++;
}