//Varaiables globales
float numeroGrados = 0; // Variable para guardar el numero de grados a los que se produjo el desequilibrio.
long tiempoEntrePulsos = 0; // Tiempo guardado entre un pulso y otro.
long tiempoOscilacion = 0; // Tiempo entre un pulso y otro.
long tiempoDesequilibrio = 0; // Tiempo para saber en que punto se produjo el desequilibrio.
.........................................................................................
// Dentro del loop el siguiente código que realiza el calculo para mostrar en el LCD el valor del numero de grados:
tiempoEntrePulsos = (micros() - tiempoOscilacion); // Se guarda el tiempo entre pulsos.
tiempoOscilacion = micros(); // Se guarda el tiempo para calcular el tiempo de un nuevo pulso.
banderaContarPulsos = false; // Se resetea el flag de la interrupción de contar pulsos.
tiempoDesequilibrio = (micros() - tiempoOscilacion); // Se guarda el tiempo entre pulsos.
tiempoOscilacion = micros();
numeroGrados = (tiempoDesequilibrio * 360) / tiempoEntrePulsos; // El tiempo de desequilibrio se pasa a grados.
lcd.setCursor(9, 2); // Posicion del cursor.
lcd.print(tiempoDesequilibrio); //Se imprime el tiempo del disparo de desequilibrio.
lcd.print("usg");
Hola Fermín, en lcd.print(tiempoDesequilibrio) estás mostrando un long, que es una variable entera de 32 bits.Gracias Lucas por la repuesta.
Saludos.
¡¡¡ Ya esta solucionado !!!!
¡ Y que simple es !!
Basta con poner en el multiplicando el valor con decimales, es decir:
numeroGrados = (tiempoDesequilibrio * 360.0) / tiempoEntrePulsos; // El tiempo de desequilibrio se pasa a grados.
F.