Hola piriots, bueno, te explicaré en dos secciones ya que ambos funcionan de manera muy distinta.
Sensor de efecto hall (UGN3503):
El sensor de efecto al detecta un campo magnético y en su salida (out) coloca un valor de tensión proporcional a la intensidad de dicho campo, por lo tanto la salida de este tipo de sensores es un valor análogo y al ser de este tipo no podemos tratarlo directamente con un PIC para esta función.
Por lo tanto lo que se hace es intoducir esta señal entregada por el sensor a un comparador, este al realizar la comparación con un valor de tensión fijo dependiendo de lo que nos entrege el hall nos colocará en su salida una tensión que será de 0V o 5V cuando el campo mangético sea menor o mayor al fijado por la tensión de referencia, de esta manera ya tenemos una señal digital que podemos tratar con el PIC.
Switch hall (A3144 o UGN3122):
Los switch hall por el contrario de los sensores entregan en su salida una señal digital, o sea que se la puede procesar directamente con el PIC, pero poseen la desventaja de necesitar para su correcto funcionamiento un cambio en la polaridad del campo magnético, por lo tanto sobre el eje que le deseas medir la velocidad debes poder montar un imán y que ambos polos de este (norte y sur) incidan directamente sobre el sensor, de otra manera no funcionaría. Por lo tanto a cada cambio de polaridad del campo que recibe el switch realiza un cambio de estado en la señal de salida.
Como puedes ver ambos sistemas tienen sus ventajas y desventajas con respecto al otro, tu debes seleccionar el adecuado.
El primero necesita más circuito electrónico pero no necesita que el imán este montado en el eje.
El segundo prescinde de todo circuito electrónico, pero necesita de un imán montado en el eje.
Con respecto de como puedes relacionar la lectura con las RPM también hay dos maneras:
Contando el tiempo que tarda en realizarce cada revolución:
Usando esta manera lo que debes hacer es medir el tiempo que se tarda el sensor en enviarte una señal con respecto a la que le procede, de esta manera si tienes por ejemplo una señal por cada revolución sabrás cuanto se tarda en realizar cada vuelta y por medio de los cálculos pertinentes determinar el numero de RPM.
Este método tiene la gran ventaja de ser de muy rápido refresco (actualización) y de mayor exactitud que el otro, pero el programa del PIC es vastante más complejo.
Contando la cantidad de RPM en determinado tiempo:
Con este método lo que haces es lo contrario, el tiempo es fijo (ejemplo 1 seg.) y durante ese tiempo cuentas la cantidad de pulsos que recibes, entonces despues con un simple cálculo (multiplicas por 60 en este ejemplo) sabrás el número de RPM.
Este método es muy sencillo de implementar, date una idea que si tomas los pulsos cada 600 mseg, con solo aplicarle 2 ceros al final de la cantidad de pulsos que recibas en esos 600 mseg ya tienes todos los cálculos realizados.
Este método tiene la desventaja que demora un determinado tiempo en realizar cada lectura, por lo tanto su actualización es mucho más lenta que el anterior.
Viendo cada método de lectura facilmente determinas cual es el que más te combiene, si por ejemplo necesitas hacer un tacómetro digital, estos tienen que ser de lectura muy lenta (ejemplo cada 600 mseg.) por lo tanto el segundo método es muy interesante de aplicar, pero si tubieras que hacer un contro del RPM de un motor el segundo método, al ser tan lento tendría una respuesta muy pobre, por lo tanto no te quedaría otra que usar el primero.
Espero haya sido claro, si te quedaran dudas me lo dices.
Un saludo.
Atte. CARLOS.