usar-un-interruptor-magnetico-con-arduino-magnetic-reed

Usar un interruptor magnético con Arduino (magnetic reed)

¿Qué es un magnetic reed?

Una magnetic reed es un dispositivo electromecánico que se comporta como un interruptor que se activa ante la presencia de un imán.

Los sensores magnetic reed son ampliamente utilizados. Por ejemplo, muchas alarmas de puertas y ventanas funcionan ubicando un imán en el elemento, y detectando la apertura con un magnetic reed. También podemos ubicar el imán en una puerta, o vitrina, para encender una luz, etc.

Como un magnetic reed no deja de ser un interruptor, podemos emplear este dispositivo para encender o apagar un dispositivo directamente. Por supuesto, también podemos emplear las entradas digitales de Arduino para leer el estado del magnetic reed, de forma similar a como vimos en la entrada leer un pulsador con Arduino.

Los interruptores magnéticos tienen la ventaja de ser baratos, sencillos y no requieren corriente para su funcionamiento. Además, funcionan tanto en corriente alterna como continua.

Por el contrario, al ser dispositivos electro mecánicos, el tiempo de conmutación es relativamente alto, del orden de 1-5 ms. Si nuestra aplicación tiene una velocidad de conmutación superior (por ejemplo, para hacer un tacómetro), deberemos emplear un sensor Hall, como vimos en esta entrada.

Además, los magnetic reed tienen una vida útil limitada, es decir, hay un número de conmutaciones que puede realizar antes de dañarse. No obstante, en algunos dispositivos puede ser hasta 100 millones de conmutaciones, lo cual es suficiente para la mayoría de aplicaciones. Por último, la presencia de vibraciones o movimientos bruscos puede alterar su funcionamiento, y dar lugar a mediciones erróneas.

Precio

Los interruptores magnetic reed son dispositivos muy baratos. Podemos encontrar magnetic reed desde 0,10€ en vendedores internacionales de Ebay o AliExpress.

El precio depende de la intensidad y tensión máxima, la potencia máxima que pueden gestionar, y de la velocidad de conmutación y vida útil.

arduino-magnetic-reeds

¿Cómo funciona un magnetic reed?

Físicamente un magnetic reed está constituido por dos elementos ferromagnéticos de níquel, ubicados en el interior de una ampolla de vidrio sellada.

Al acercar un campo magnético la fuerza generada provoca que ambos elementos entren en contacto, cerrando el circuito eléctrico.

arduino-magnetic-reed-explicacion

También existen magnetic reed cuyo estado es normalmente cerrado, y abren el circuito eléctrico en presencia del campo magnético. Incluso encontramos magnetic reed que disponen ambas salidas, una normalmente abierta y otra normalmente cerrada, en el mismo dispositivo.

El campo magnético requerido para activar el interruptor es típicamente del orden de 50 Gauss.

Esquema eléctrico

El esquema eléctrico es sencillo. Vamos a usar las resistencias internas de pull-up de Arduino, por lo que simplemente conectamos el magnetic reed entre GND y la entrada digital que queramos emplear.

arduino-magnetic-reed-esquema

Esquema de montaje

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

arduino-magnetic-reed-montaje

Ejemplos de código

El siguiente código muestra un ejemplo sencillo. Usamos una entrada digital, con la resistencia pull-up interna, para leer el estado del magnetic reed. Si el sensor está activado, la entrada leerá LOW, y en ese caso encendemos el LED integrado en la placa. Por supuesto, en un proyecto real, en lugar de encender el LED integrado ejecutaríamos las acciones que quisiéramos.

const int pinSensor = 2;
const int pinLED = 13;

void setup() {
  //configurar pin como entrada con resistencia pull-up interna
  pinMode(pinSensor, INPUT_PULLUP);
  pinMode(pinLED, OUTPUT);
}

void loop() {
  int value = digitalRead(pinSensor);

  if (value == LOW) {
    digitalWrite(pinLED, HIGH);
  } else {
    digitalWrite(pinLED, LOW);
  }

  delay(1000);
}

Por supuesto en un proyecto real, en lugar de encender el LED integrado, ejecutaríamos las acciones que quisiéramos.

Descarga el código

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