Medir las revoluciones R.P.M.

Medir las revoluciones de giro de un motor en un display LCD, utilizando un interruptor óptico ranurado como sensor. Posible librería y código para realizar este medidor con Arduino (FreqCount.h). Esquema del medidor de RPM, utilizando el micro-procesador de Atmel AT89C2051 y un display LCD de 2 líneas y 16 caracteres. Comprobación de funcionamiento y medidas RPM con diferentes motores.

En un video anterior (Medir con precisión las RPM de un motor, es muy fácil) mostraba cómo se podían medir con precisión la velocidad de giro de un motor, de una forma fácil y sencilla.

Interruptor óptico ranurado
Interruptor óptico ranurado

El captador utilizado era un interruptor óptico ranurado,  posteriormente se medía la frecuencia de giro del motor y se convertía en revoluciones por minuto (RPM). La frecuencia se puede medir con un frecuencímetro, un osciloscopio o mediante una aplicación gratuita utilizando un dispositivo móvil.

Medir RPM con el móvil
Medir RPM con el móvil

En esta ocasión vamos a realizar un medidor de RPM completo, mostrando las revoluciones por minuto en un display LCD. El controlador del medidor se podría hacer con ARDUINO, utilizando la librería FreqCount.hpero deberemos tener en cuenta las limitaciones que tiene esta librería, dependiendo del modelo de Arduino que estemos utilizando

Arduino UNO & FreqCount.h

  • Pin de entrada para realizar la medida: 5
  • Deshabilitación de la sentencia  analogWrite() en pines: 3, 9, 10 y 11.
Conexiones LCD Keypad Shield
Conexiones LCD Keypad Shield

Si queremos utilizar le módulo LCD Keypad Shield con nuestro Arduino UNO, tendremos que utilizarlo sin ensamblar ambos módulos mediante sus conectores, porque coincide el pin de medida (FreqCount.h) con una de las conexiones del módulo LCD. Será necesario modificar las conexiones del LCD, ensamblando ambos módulos con cables para mover la entrada/s ocupada/s.

Con el fin de mejorar la resolución de las medidas… y después de algunos incidentes que tuve con mi Arduino, decidí hacer todo el desarrollo partiendo desde cero, y utilizar el micro-controlador de Atmel: AT89C2051.  En esta primera versión (quizás haga alguna mejora) la resolución de las medidas las determina un temporizador de 0,1 milisegundos (100 uSeg). De esta manera, la medida máxima de revoluciones por minuto que podríamos medir serán 600.000 RPM. Sin embargo, al ser un tiempo fijo, el valor inmediatamente inferior que mediríamos sería 300.000 RPM. Es decir, un salto entre medidas excesivamente grande. Por este motivo limité el valor máximo a 65.535 RPM (16 bit), aunque la medida máxima que podremos ver en el display será 60.000 RPM. Por otra parte, la medida mínima empezará a partir de 12 RPM. Esta limitación queda determinada por el tiempo máximo de espera que fijé para actualizar el valor mostrado en el display, que son 5 segundos.

Medidor R.P.M.
Medidor R.P.M.

 

Tabla RPM
Tabla RPM

En la tabla de la izquierda (click para ampliar) podemos observar los valores de RPM que podrían aparecer en el display, cuando medimos valores entre 4.000 y 60.000 RPM. Como podemos comprobar, la resolución de las medidas empeora al subir la velocidad de giro, lógico porque partimos de un temporizador de valor fijo (100 uSeg). Como en los motores de uso más frecuente la velocidad de giro no suele superar las 4.000 RPM, la resolución que se mostrará con este medidor será bastante buena.