Sensores simples para calcular RPM
¿Alguna vez te has preguntado cómo calcular las revoluciones por minuto con un microcontrolador? Este proyecto le muestra cómo apuntar a un transmisor IR, un detector y un ventilador de computadora. A medida que giran las aspas del ventilador, interrumpen el haz de luz infrarroja entre el emisor y el receptor. Esto da como resultado una forma de onda en el circuito del receptor que puede usarse fácilmente para activar interrupciones en cualquier microcontrolador. En este caso, el PIC 18F452 monitorea las señales del detector para el flanco ascendente. Al medir los datos de tiempo entre interrupciones, se puede establecer el período y calcular las RPM. Puede ver un video de la plataforma de prueba después del salto.
Entonces, ¿para qué puedes usar esto? Es el método que utilizan la mayoría de las pantallas POV giratorias para estabilizar la pantalla. No estará limitado a un sensor IR, pero puede usar un sensor de efecto halo de la misma manera básica.
[via Hacked Gadgets]
Travis dice:
¿No se podría usar el pin del tacómetro en el ventilador como fuente de pulsos que podrían desencadenar las interrupciones en el PIC 18F452? (por ejemplo, para este ventilador), en lugar de la división de radio IR?
erik johnson dice:
@Travis Creo que el ventilador se usó solo con fines de demostración, la aplicación es más amplia que eso.
JC dice:
Gran idea, pero ¿no sería demasiado rápido que el controlador respondiera algún día? Especialmente si está tratando de controlar un proceso diferente.
Realmente estoy programando PLC, por lo que un contador de alta velocidad funcionaría allí, pero no estoy seguro de cómo funciona en el mundo de los microcontroladores.
Es sorprendente cuánto se gasta en sensores, etc. en la industria. Se mantienen muy bien y por eso pagas (y la personalización), pero muchos son bastante simples en esencia.
Colecago dice:
Los PLC contienen microcontroladores, por lo que todo lo que PLC puede hacer, Micropo lo puede hacer, y probablemente mejor y más rápido.
branno dice:
Soy estudiante de ingeniería mecánica en UC Berkeley. Tenemos una clase de último año en medición y distribución de datos en la que tenemos un proyecto final que es exactamente esto. Cuando vi esta publicación, pensé que podría ser de uno de mis compañeros de clase, pero, lamentablemente, no lo es.
JC dice:
@Colecago - Oye, no discutas sobre los PLC :).
Por cierto, la última vez que trabajé con un transmisor IR, descubrí que podía verlo con una cámara web; aparentemente, solo captura un poco más que la luz visible.
ReKlipz dice:
@JC: sí, habría algunos alias en algún momento, dependiendo de qué tan rápido esté sincronizada la CPU y el código que se ejecuta en ella. Sin embargo, si fuera necesario, sería posible detectar el alias y ajustar la salida según sea necesario, aunque en realidad no será exacto (quiero decir, es un alias...). Un segundo sensor con una velocidad diferente también podría ayudar en ese escenario.
Aarón dice:
Funciona de noche sin luz? Quiero “monitorear” la rueda del hámster y calcular la distancia que corre todas las noches.
fumanto_dave dice:
@JC
Si el motor girara demasiado rápido para que el procesador lo monitoreara sobre la marcha, simplemente conectaría una interrupción de pin al sensor IR y solo aumentaría un contador cada vez que se detecte un borde.
Luego tendría un temporizador que genera una interrupción cada pocos cientos de milisegundos (o lo que sea) y en esa interrupción calcularía cuántos bordes ocurrieron durante ese período de tiempo.
Este definitivamente sería el camino a seguir si realiza múltiples tareas porque utiliza un tiempo mínimo de CPU durante la rutina del servicio de interrupción.
arjan dice:
Sí, Aarón. Un transmisor IR es perfectamente visible con un sensor IR por la noche. Incluso mejor que durante el día porque la luz del día contiene mucho "ruido" IR. Puede montar el sensor y el transmisor uno al lado del otro y colocar un pequeño trozo de papel blanco en la rueda. De esa manera, no tendrá una forma de onda, sino picos claros en la señal.
arjan dice:
@ smoker_dave: este método es muy bueno, pero puede ser menos preciso porque solo se pueden omitir los bordes completos. Calcular las RPM cada vez que ocurre la interrupción sería más preciso, pero llevaría algo de tiempo. La forma en que elegiría sería contar los microsegundos entre cada borde. De esa manera usted puede saber la velocidad más precisa. Tal vez alguno de los métodos sea mejor para todos.
Colecago dice:
@JC-
No, no me disgusta. Los PLC son increíbles porque son máquinas industriales que básicamente tienen su propio sistema operativo para ejecutar código personalizado. Su núcleo es un arduino industrial, que opera lógica de escalera en lugar de código. No muy bien, trabajé en PLC, trabajé en micrófonos. cada uno tiene su propio objetivoIván dice:
@Aaron Primero verificaré si la luz IR no molesta al hámster, tal vez verifique con un televisor y vea cómo se comporta. La mayoría de los roedores tienen visión nocturna, por lo que no sé si tener un sensor IR que indique que pueden alterar sus hábitos.
oh dice:
¿Sería difícil dar salida a las RPM en forma de resistencia o voltaje?
Supongo que sería un poco más difícil de calibrar, pero pensé que sería una buena idea tenerlo para que podamos configurar nuestro multímetro en resistencia y luego enviar los datos a un multímetro.
sreeraj dice:
un proyecto parecido.
http://linuxgazette.net/114/pramode.htmlmccoywm dice:
@aw es bastante simple de usar un convertidor de frecuencia a voltaje (utilicé el 2907) para convertir la onda cuadrada del sensor en voltaje analógico en cualquier rango que dibuje.
addidis dice:
buen post esto sera util.
qlwlp dice:
@fumanto_dave
captura de entrada de temporizador perfecta para la medición de RPM