int pinSensor = 4;
int estado = 0;
int estadoAnterior = 0 ;
float tiempo = 0;
float fV = 0.439824 ;
float fC = 0.06 ;
float RPM = 0 ;
float Velocidad = 0;
unsigned long TA = 0 ;
float tiempoAnterior = 0 ;
unsigned long tAct = 0;
unsigned long tAnt = 0;
int contador = 0;
void setup() {
pinMode(pinSensor, INPUT);
Serial.begin(115200);
}
void loop() {
tiempo = Tiempo();
tAct = millis();
if (tAct - tAnt >= 1) {
contador++;
if (tiempo != tiempoAnterior){
RPM = 60000 / tiempo ;
Velocidad = RPM *fV * fC;
tiempoAnterior = tiempo ;
}
if (contador >=100) {
Serial.print(" Velocidad = ");
Serial.print(Velocidad);
Serial.println("KM");
RPM = 0;
Velocidad = 0;
contador = 0; }
tAnt = tAct ;
}
}
float Tiempo(){
estado = digitalRead(pinSensor);
int ahora = millis();
if((ahora - TA >= 1) & (estado == 1) & (estadoAnterior == 0) ) {
tiempo = ahora - TA;
TA = ahora;
estadoAnterior = 1;
}
if (estado == 0) { estadoAnterior = 0 ;}
return tiempo ;
}