detectar-campos-magneticos-con-arduino-y-sensor-hall-a3144

Detectar campos magnéticos con Arduino y sensor Hall A3144

¿Qué es un sensor Hall?

Un sensor Hall es un dispositivo que nos permite realizar mediciones de campo magnético.

Los sensores Hall son ampliamente utilizados. Por ejemplo, en la industria del automóvil se usan para funciones tan dispares como para el accionamiento de los cinturones de seguridad, o la medición de la posición del árbol de levas. También se usan para medir velocidades de fluidos, detección de metales, factores de inducción, entre otras muchas aplicaciones.

Una ventaja importante de los sensores Hall es que realizan la medición a distancia, sin necesidad de contacto físico. Aunque su alcance es limitado (típicamente pocos centímetros) esto supone que apenas presentan desgaste mecánico. Además son inmunes a ruidos y polvo. Esto los convierte en sensores fiables y duraderos.

En general, encontramos dos tipos de sensores Hall:

  • Analógicos. Generan una salida proporcional a la intensidad del campo magnético. Empleados para medir la intensidad de un campo magnético
  • Digitales. Proporcionan un valor Alto en presencia de campo magnético, y bajo en ausencia del mismo. Por tanto, son empleados para detectar la existencia de campos magnéticos. A su vez se dividen en,
  • Switch, se activan al acercar el polo, y se desactivan al retirar el polo
  • Latch, se activan al acercar un polo, y mantienen su valor hasta que se acerca un polo contrario

En esta entrada emplearemos un sensor Hall A3144, de tipo digital Switch. Podemos emplear este sensor para detectar la presencia de un objeto, al que previamente habremos colocado un pequeño imán, o para fabricar tacómetros (contadores de revoluciones) simplemente acoplando un pequeño imán de neodimio al eje.

Precio

Los sensores Hall A3144 son realmente baratos. Podemos encontrar 10 dispositivos A3144 por 0.6€ en vendedores internacionales en eBay o AliExpress.

hall-a3144

¿Cómo funciona un sensor Hall?

Su principio de funcionamiento es el efecto Hall, denominado así por su descubridor Edwin Herbery Hall, en 1849.

Al hacer circular una corriente eléctrica a lo largo de un semiconductor en presencia de un campo magnético, los electrones son desviados por efecto del campo magnético, dando lugar a una tensión perpendicular a la corriente y al campo magnético.

efecto-hall

Midiendo esta tensión originada por el efecto Hall podemos conseguir construir sensores y medidores de campos magnéticos.

Esquema eléctrico

El esquema eléctrico que necesitamos es el siguiente.

arduino-hall-esquema

Por lo que el esquema de conexión con Arduino quedaría así.

arduino-hall-esquema-electrico

El esquema y valores de resistencias mostrador corresponden con el sensor A3144. Otros sensores hall requieren otros esquemas de montaje. Consultar su datasheet correspondiente si vuestro componente es distinto.

Montaje

Mientras que el montaje en una protoboard sería el siguiente.

arduino-hall-montaje

Ejemplo de código

El código necesario para realizar la lectura es simple. Simplemente leemos el estado el estado del Pin del sensor Hall, tal y como vimos en la entrada entradas digitales en Arduino.

const int HALLPin = 5;
const int LEDPin = 13;

void setup() {
  pinMode(LEDPin, OUTPUT);
  pinMode(HALLPin, INPUT);
}

void loop() {
  if(digitalRead(HALLPin)==HIGH)
  {
    digitalWrite(LEDPin, HIGH);   
  }
  else
  {
    digitalWrite(LEDPin, LOW);
  }
}

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full