lunes, 2 de diciembre de 2013

Sensor Magnético - Keyes KY035 - Parte 1


Los sensores de efecto Hall son bastante simples de usar pero hay algunas cosas que quizás no conozcas y que quizás necesites conocer antes de comenzar un nuevo proyecto.

Como ya sabrás por nuestra entrada anterior Sensores Magnéticos, un sensor de efecto Hall es un dispositivo que reacciona a un campo magnético generando una señal eléctrica. Siendo el uso más común de este tipo de sensores el de actuar como un conmutador digital en presencia de un campo magnético lo suficientemente fuerte.

Pero la realidad es que hay muchos tipos diferentes: los hay que producen una señal analógica en función de la fuerza y la polaridad de un imán, los hay de los que conmutan cuando detecta un campo lo suficientemente fuerte, y que no vuelven a abrirse hasta que no se detecta un campo igual de fuerte en sentido contrario,  los hay que solo detectan el campo magnético en un eje, o lo hay que pueden medir los tres componentes del campo que detecte, etc.

Cada sensor de efecto Hall están diseñado para trabajar con una intensidad específica del campo magnético (medido en Gauss), con objeto de que solo se accione cuando la señal es la adecuada. Y digo adecuada, porque tan malo es que la intensidad requerida para activarlo sea muy baja (y entonces podríamos tener mucha contribución de los campos magnéticos circundantes generados) como que sea muy alta, puesto que el resto de la electrónica de nuestro proyecto podría verse influenciada.

La mayoría de los sensores se venden cubriendo una amplia gama de sensibilidades, aunque en esta primera introducción presentaremos uno que se vende en el kit de sensores para Arduino de la serie Sensores Keyes, el sensor KY 035.

Como sucede para el resto de los sensores de la serie Keyes, normalmente los proveedores no suministran demasiada información sobre sus características básicas, sus condiciones de operación ni sus limitaciones. Esto que en principio para cualquiera podría parecer un despropósito para alguno lo considera un reto, por que está en la base del tinkering, el cuestionarse para qué sirve cualquier cosa, encontrarle su utilidad, y darle uso.

Y como es fundamental ser positivo y ver todo de las perspectiva más adecuada, he querido pensar que es así, y no por ser un sensor realmente barato.

Sea como sea, si eres de los que piensan descubrirlo todo por tí mismo, sáltate el resto de la entrada y vete directamente a la fase de montaje y programación que presento en la segunda parte de esta presentación del sensor KY0035.

Si estás aquí, es que entiendo de que además de querer cacharrear con el sensor, te interesa saber algo más de qué es, y quién lo ha construido.

Pues bien, este es el aspecto general del sensor, donde como verás cuesta un poco poder identificarlo fácilmente del resto de sensores de la serie Keyes (las dimensiones están en milímetros).


El acabado no es especialmente bueno, pero si miramos con atención, podemos identificar el sensor que monta: El sensor lineal de efecto Hall de Honeywell referencia SS49E.


Gracias a esto podremos sacar las prestaciones que se le espera al sensor KY035. Según la hoja de datos de Honeywell

y de aquí podemos observar varias cosas:

  1. Es un sensor lineal. Esto es, que va a traducir en tensión las variaciones del campo magnético que perciba
  2. Los voltajes de alimentación con los que va a trabajar estarán en el rango de 2,7 a 6,5 voltios. Esto es, debería sentirse muy cómodo con los 5 voltios de tensión de los pines del Arduino.
  3. El consumo es muy reducido, de menos de 10 mA. Lo cual significa que puede alimentarse directamente de la placa de Arduino que suministra hasta un máximo de 40 mA por PIN.
  4. Trabaja en campos magnéticos en el rango de 650-1000 Gauss.  Esto nos va a permitir trabajar con imanes pequeñitos de uso habitual.

Bien, ahora que sabemos para qué debería servirnos, vamos a ver cómo podríamos conectarlo. Esto normalmente viene claramente identificado en el PinOut del sensor o de la placa, pero como solo veo una S en el pin más a la derecha me surgen dudas de qué conexionado lleva la placa, y para qué se le han creado los PADs de conexión L y R1. Así que, con polímetro en mano, empiezo a buscar continuidad entre cada pin y cada PAD de la PCB.

Si eres un fanático del tinkering, no sigas leyendo hasta que no tengas un esquema propio. Es fácil, usa el multímetro en modo idenficación de continuidad y prueba PAD a PAD con quién está conectado cada cosa.

Pues bien, una vez que hayáis terminado podéis comprobar el resultado con el mío y ver si lo tenéis todo bien identificado. Os dejo una foto hecha con Rayos-X como ayuda.



Con todo ello, parece ahora evidente el esquema:

Pero esto no nos dice demasiado, porque lo que necesitamos saber, es cuál es el PIN de alimentación, cuál el de tierra y cuál el de salida,  y de nuevo, gracias al hecho de haber identificado al proveedor Honeywell, vemos que en la hoja de datos define su diagrama de bloques

y si vamos a la versión del encapsulado que nos afecta, no solo veremos donde está situada el sensor Hall, sino que nos identificará qué es cada PIN concreto.

 o lo que es lo mismo

Algo que parece dar sentido a la "S" (por ser la Señal de Salida) y a la Tierra (GND, por ser el PIN negativo). Por descarte el tercer PIN sería la alimentación Vs.

Esta es la esencia del Tinkering. Ahora ya estamos en disposición de montarlo en una protoboard (si no recuerdas qué era, lee la entrada sobre el protroboard) y empezar a programar algo sencillito, teniendo siempre en mente que el comportamiento nominal previsto para este sensor lineal sería como el que se ilustra en la hoja de datos del componente de Honeywell.




2 comentarios:

  1. el comando para el arduino el programa no lo encuentro, alguien lo sabe? el comando para que actue con un led.

    ResponderEliminar
  2. Este sensor no requiere de ningún comando específico para ser usado. Es un sensor analógico que da señales en tensión de 1 a 4 voltios.
    Esto significa que si se conecta a un pin analógico de la placa Arduino, puede darte una tensión proporcional al campo magnético detectado.

    Como además tiene la ventaja de ser un sensor lineal, cada incremento de 1.4 milivoltios, significaría un incremento en el campo magnético detectado de un Gauss. Esta respuesta viene dada por el parámetro definido como Sensitivity del sensor, y lo puedes encontrar en su datasheet (hoja de datos).

    Si nunca has usado un Gaussímetro y tienes curiosidad de verlo en funcionamiento. Puedes hacer tu mismo tus propias mediciones con tu propio teléfono móvil. En este pequeño video verás cómo varía la intensidad del campo magnético a medida que lo aproximas a tu móvil. https://www.youtube.com/watch?v=GGznYLCkRME

    Pero si lo único que quieres ver es si el imán está cerca o no, esto es, si está tan cerca de tu sensor que la señal que da es máxima (en la figura 2 de la entrada podemos ver que esto significa 4 voltios), puedes consider conectar al sensor a un pin digital de la placa. De esta manera, lo único que le tienes que preguntar a tu Arduino, es si está viendo al pin al que hayas conectado el sensor, en estado alto o en estado bajo. Si está en alto, significa que el imán esta muy cerca. Y de este modo, esta alarma te puede servir para hacer sonar un zumbador, encender un led, etc.

    Esperamos haber podido resolver tu duda.

    ResponderEliminar