¿Qué es el módulo sensor efecto Hall KY-003?
El KY-003 es un módulo compatible con Arduino que lleva conectado un sensor capaz de detectar campos magnéticos. Funciona según el principio del efecto Hall.
Este módulo forma parte del kit de 37 sensores compatible con Arduino.
¿Para qué sirve el módulo KY-003?
El módulo KY-003 puede ser útil en una variedad de aplicaciones debido a la capacidad de su sensor de efecto Hall para detectar campos magnéticos.
Algunos de los usos comunes de este componente incluyen:
- Interruptores de proximidad: Permite detectar la presencia o ausencia de objetos magnéticos. Por ejemplo, en sistemas de seguridad para detectar aperturas de puertas y ventanas.
- Sensores de posición: Los sensores de efecto Hall pueden medir la posición de un objeto magnético en relación con el sensor. Estos sensores son comúnmente utilizados en sistemas de control de posición, como los sistemas de dirección asistida en automóviles.
- Control de motores: Los sensores magnéticos de efecto Hall se utilizan para determinar la posición del rotor y controlar la conmutación de las bobinas en motores eléctricos. Esto es común en motores brushless (sin escobillas) utilizados en ventiladores, herramientas eléctricas, y sistemas de propulsión en vehículos eléctricos.
- Sistemas de navegación magnética: Son útiles en este tipo de sistemas para determinar la dirección y la velocidad de un vehículo en función de la información magnética del entorno.
- Medición de corriente: En algunas aplicaciones, los sensores de efecto Hall se utilizan para medir la corriente en conductores. La intensidad de un campo magnético generado por la corriente se detecta y se convierte en una señal eléctrica proporcional a la corriente.
- Sensores de velocidad: Los sensores magnéticos de efecto Hall también se emplean en la medición de la velocidad, como en sistemas de control de velocidad en vehículos.
- Aplicaciones industriales: En entornos industriales, este tipo de sensores se utilizan en diversas aplicaciones, como la detección de posición en maquinaria, control de procesos y sistemas de automatización.
Especificaciones del módulo KY-003
Estructura física
El módulo lleva conectado un transistor 44E402 o un 3144 (depende del fabricante):
También lleva conectado un LED, con su correspondiente resistencia, que se ilumina cuando detecta un campo magnético:
El módulo KY-003 también dispone de 3 pines que permiten realizar una conexión fácil y rápida con una placa Arduino (o con cualquier otro microcontrolador):
- GND: Es el pin etiquetado como -. Va conectado a tierra.
- VCC: Es el pin central del módulo. A través de este pin recibe la alimentación (entre 3.3V y 5V).
- OUT: Salida digital del módulo. Envía un pulso alto (HIGH) cuando el sensor está en reposo y un pulso bajo (LOW) cuando el sensor detecta magnetismo.
Especificaciones técnicas
Tensión de alimentación | 3.3V a 5V |
Dimensiones | 18,5 mm x 15 mm |
Señal de salida | Digital |
Temperatura de funcionamiento | -25 ºC a 85 ºC |
Consumo | Reposo: 3mA Funcionamiento: 8mA |
¿Cómo funciona el sensor efecto Hall?
El sensor de efecto Hall consta de un material semiconductor a través del cual fluye una corriente eléctrica.
Cuando este semiconductor se expone a un campo magnético perpendicular a la corriente eléctrica, se genera una fuerza en las cargas eléctricas en movimiento (electrones o huecos).
Debido al efecto Hall, se crea una diferencia de potencial (voltaje Hall) a los lados del conductor. Esta diferencia de potencial es proporcional a la intensidad del campo magnético y a la corriente que fluye a través del semiconductor.
La salida del sensor se mide mediante la medición de la diferencia de potencial generada. Esta salida puede ser procesada electrónicamente para determinar la fuerza y la dirección del campo magnético.
En el caso del módulo KY-003, la salida es digital, por lo que solo detectaremos la presencia o ausencia del campo magnético y no dispondremos de tanta precisión.
¿Cómo conectar el módulo KY-003 con Arduino?
Materiales
A continuación puedes consultar los materiales necesarios para conectar el módulo KY-003 con Arduino:
Una placa Arduino (Yo usaré Arduino UNO) | ||
Un módulo KY-003 | ||
Cables | ||
Una protoboard | ||
Un ordenador con el IDE de Arduino instalado |
Conexiones
En la siguiente imagen puedes ver las conexiones necesarias para utilizar el módulo KY-003 con Arduino:
Como puedes ver, las conexiones son muy sencillas. Incluso puedes conectar el módulo directamente a tu Arduino sin necesidad de utilizar una protoboard:
Simplemente conecta el pin GND(-) del módulo a un pin GND de Arduino. El pin central del módulo, que es la alimentación, al pin de 5V de Arduino. Y para terminar, el pin OUT(S) del módulo conéctalo a un pin digital de Arduino. Como puedes ver en la imagen yo lo he conectado al pin 2.
Y ya estaría todo listo, ¡Vamos a programar!
¿Cómo programar el módulo KY-003 con Arduino?
Este es el sketch completo para detectar campos magnéticos con el módulo KY-003 y un Arduino:
//DECLARACIONES
const int KY003 = 2;
//CONFIGURACIÓN
void setup () {
Serial.begin(9600);
pinMode (KY003, INPUT);
}
//FUNCIÓN LOOP
void loop () {
int lectura = digitalRead (KY003);
if (lectura == LOW ) {
Serial.println("Campo magnético detectado");
}
}
Declaraciones
En la zona de declaraciones solo he definido una constante de tipo int a la que he llamado KY003. Le he asignado el valor del pin digital en el que conectamos el pin OUT (S) del módulo:
const int KY003 = 2;
Si tu lo has conectado en otro pin cambia el 2 por el valor correcto.
Configuración
Dentro de la función setup() tenemos dos instrucciones:
void setup () {
Serial.begin(9600);
pinMode (KY003, INPUT);
}
La primera instrucción inicializa el puerto serie, que posteriormente nos será útil para depurar y ver en el monitor serie el estado del sensor:
Serial.begin(9600);
La segunda instrucción configura el pin digital en el que está conectado el sensor como entrada para recibir la señal enviada por el módulo a través del pin OUT (S):
pinMode (KY003, INPUT);
La configuración no tiene más. Vamos por la función loop.
Función loop
Dentro de la función loop es donde se realiza la lectura del sensor:
int lectura = digitalRead (KY003);
El valor leído se almacena en la variable lectura para su posterior análisis.
A continuación se compara el valor de la variable lectura con LOW, puesto que ese es el valor que recibimos del módulo cuando detecta un campo magnético:
if (lectura == LOW ) {
Serial.println("Campo magnético detectado");
}
Cuando se cumple la condición evaluada en la instrucción if (lectura == LOW) se envía un mensaje al monitor serie para notificar que se ha detectado un campo magnético. Para ello usamos Serial.println(),
Si el sensor no detecta ningún magnetismo envía valor HIGH al pin digital de Arduino. La condición evaluada en la instrucción if no se cumpliría y no se mostraría ningún mensaje.
Recuerda que la función loop es un bucle infinitio, por lo que se estarán haciendo lecturas del sensor de forma constante.
Para comprobar que funciona abre el monitor serie. No debería aparecer nada hasta que no acerques un imán al sensor. Entonces verás algo como esto:
Y si te fijas en el módulo, el LED también se ilumina al detectar el campo magnético:
Y con esto tendríamos nuestro módulo KY-003 listo para empezar a detectar magnetismo a nuestro alrededor.