contador de RPM usando el microcontrolador 8051

1

Estoy construyendo una unidad de medición de RPM con un microcontrolador 8051. Quiero medir RPM del motor de corriente alterna. He conectado el sensor de proximidad para obtener el pulso en cada giro.

He conectado la salida del sensor de proximidad al contador del microcontrolador. Y estoy calculando el retraso de 1 segundo usando el temporizador.

Por cada segundo estoy calculando el RPM = cuenta de pulsos [valor del contador] * 60.

Ej: si el conteo de pulsos = 16, obtengo RPM = 960 r / m Si el recuento de impulsos = 17, RPM = 1020 r / m.

Aquí estoy obteniendo diferencia de 60 r / m.

Usando el método anterior, no puedo medir RPM de 1000 r / m. Dado que el conteo de pulsos * 60 no será 1000 en un momento dado.

Por favor, avísenme cómo puedo medir RPM de manera precisa.

Gracias Umesh

    
pregunta user2507991

3 respuestas

6

Tendrías que medir

  • ya sea la duración entre el último pulso y el final de su período de medición de 1 segundo (y calcule eso en su fórmula como una fracción de pulso)
  • o (preferiblemente) la duración entre dos pulsos (descartando el período de 1 segundo y utilizando la inversa de la duración del pulso para calcular la frecuencia del pulso).

Para implementar esto, solo necesita revertir su principio de medición actual: en lugar de contar los pulsos por segundo, contaría mils o microsegundos 1 por pulso.

1: o cualquier fracción de segundo que puedas obtener fácilmente de un temporizador

Además, es posible que desee calcular un promedio de ventana deslizante de sus mediciones para reducir su fluctuación.

    
respondido por el n.st
3

Podrías usar múltiples sensores de proximidad para obtener varios pulsos por rev. Si está utilizando una sonda inductiva, puede usar varios trozos pequeños de hierro sobresaliente en la parte giratoria que también generan varios pulsos por revolución.

Otra forma es usar una caja de engranajes pequeña para aumentar las revoluciones observadas por el sensor.

Todos estos son métodos que no son de software, pero consideraría una respuesta que usara primero los métodos de software porque solo le cuesta tiempo desarrollarlos. Estaría pensando en utilizar un reloj / contador de alta velocidad y contar estos relojes entre pulsos consecutivos recibidos del sensor.

    
respondido por el Andy aka
0

Creo que medir el tiempo entre impulsos y promediar es probablemente una buena solución. Pero si desea continuar contando pulsos por segundo, solo necesita promediar la medición en varios segundos. Por ejemplo, a 1000 RPM si mide los conteos por segundo durante tres segundos consecutivos, es posible que obtenga 17, 16 y 17 conteos, que promedian los 1000 RPM.

    
respondido por el kkrambo

Lea otras preguntas en las etiquetas