TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: VanderPIC en 09 de Febrero de 2014, 04:19:25

Título: Problema para calcular exactamente rpm
Publicado por: VanderPIC en 09 de Febrero de 2014, 04:19:25
Hola a todos quería iniciar este tema por que he buscado y no encuentro nada parecido.
Como se puede  calcular exactamente las rpm que se miden, si utilizo una interrupción de 500 ms  para capturar pulsos y la multiplico por 2 y luego por 60 tendria las rpm en un minuto.
Pero siempre me va  dar lecturas multiplos de 60, nunca voy a poder medir por ejemplo 1675 rpm. Existe alvuna manera de hacer lecturas mas precisas.
Título: Re: Problema para calcular exactamente rpm
Publicado por: ppyote en 09 de Febrero de 2014, 05:32:33
Cuanto más tiempo de muestreo, menor es el factor multiplicador,
sí tú durante 1 segundo lees las interrupciones de las rpm, el resultado le deberías de multiplicar por 60 para hallar el valor en un minuto, pero sí en vez de 1 segundo de lectura de las interrupciones, este tiempo lo subes a 10 segundos, la resolución aumenta
sería multiplicar por 6 el resultado de los pulsos obtenidos por interrupcion
Título: Re: Problema para calcular exactamente rpm
Publicado por: MerLiNz en 09 de Febrero de 2014, 20:20:17
La forma mas precisa es medir la duracion del pulso, si por ejemplo tenemos pulsos de 5ms entonces tenemos una frecuencia de 200Hz o 12000RPM.

Para ello lo que se hace es detectar un flanco del pulso, activar un timer, detectar el flanco contrario y calcular la duracion en tiempo de ese pulso.
Título: Re: Problema para calcular exactamente rpm
Publicado por: Picuino en 09 de Febrero de 2014, 20:40:25
Más exacto aún:

1.- Esperas a un flanco de subida de un pulso de las rpm

2.- En ese momento comienzan dos contadores a funcionar:
    Un contador cuenta pulsos de las rpm y otro contador mide el tiempo (por ejemplo cuenta ciclos de reloj)

3.- Esperas un segundo.

4.- Esperas a que venga un flanco de subida de un pulso de las rpm.

5.- En ese momento, paras los dos contadores (rpm y tiempo)


Ahora calculas:

    velocidad = pulsos / tiempo


De esta forma puedes llegar a conseguir una precisión de 6 decimales:  

    velocidad = 1675.47 rpm


Saludos.