Contador de Pulsos - DavidSanchez90/Medidor-de-RPM-con-Arduino-UNO GitHub Wiki

CONTADOR DE PULSOS

Se desarrollo un contador de pulsos con un Encoder de 24 marcas el cual nos arroga 12 cambios (12 pulsos),se pego en la parte de arriba del motor, de tal manera que el sensor utilizado (OPB-706) pudiera detectar los cambios de blanco a negro.

Fig1 Encoder de 24 marcas

En la siguiente imagen se muestra el montaje del sensor y en Encoder en el motor de tal manera que el sensor detecte de manera precisa cada marca del Encoder, se utilizo un una mica perforada la cual se monto en el motor con tornillos de esta manera servirá como el soporte del sensor.

Fig2 Montaje de Sensor y Encoder en motor

En el siguiente esquema se muestra el acople del ventilador de PC con el Arduino. En este circuito se amplifica la señal generada que se lee del encoder, para obtener una señal cuadrada acondiciona (0-5V), que permite a la tarjeta Arduino leer esta señal con precisión por el Pin 5. El opto acoplador (OPC-706) genera la señal al detectar los cambios en las marcas del encoder; esta señal podría tener lo necesario para enviarse a la tarjeta Arduino pero puede no tener la potencia necesaria para la lectura del Arduino, por lo que se procede a amplificar con el transistor BJT (2N3904).

RESULTADOS

El resultado de nuestro contador de pulsos se muestra en la imagen siguiente la cual contiene 2 señales la primera señal es de nuestro contador y la segunda es del Arduino el cual cada ves que realiza el conteo y muestra en pantalla las RPMs arroja un alto y un bajo.

Fig3 Contador de pulsos

En esta imagen se muestra el circuito final ya conectado y funcionando.Se desarrollaron diversas pruebas de tal manera que el transistor diera la señal correcta.

Como podemos ver en la imagen los datos obtenidos de contador son procesados por el Arduino y convertido a RPM por medio de una formula realizada dentro del programa (rpm=(count*60)/12) en la cual se multiplica la entrada del contador de pulsos por 60 que son los segundos en un minuto, y se divide en el numero de cambios en el Encoder de una vuelta del motor y de esa manera se realiza la conversión de frecuencia a RPMs.

Conclusión

La tarjeta Arduino tiene una amplia variedad de aplicaciones sin necesidad de utilizar lenguaje de nivel bajo o el uso directo del hardware. En este desarrollo fue necesario el uso de hardware Atmel1252 (Arduino ONO) debido a que la frecuencia que se requería leer sobrepasaba la velocidad de lectura de pin digital o analógico usando solo programación de alto nivel. Se intentó leer por el pin de lectura de datos (serial RX) pero tampoco se podía leer con la velocidad necesaria. Se procedió al uso del Timer1 interno del hardware el cual respondía bien a la velocidad o frecuencia del elemento a medir.