KY-003

Esta placa sensora está basada en el chip 3144, que es un sensor magnético de efecto hall.

Tendríamos a grandes rasgos una placa que:
- Sensible a los campos magnéticos que hay a su alrededor
- Alimentación entre 4,5V y 24V
- Protección contra alimentación inversa hasta -35V
- Máxima intensidad de salida de 25mA

CARACTERISTICAS

Las características principales de esta placa son:
- Salida de colector abierto capaz de suministrar 25mA
- Compatible con entradas digitales, siendo nivel bajo activo
- Rango de temperatura de funcionamiento entre -40ºC y +85ºC
- Rango de alimentación entre 4,5V y 24V

Si queremos ver la hoja de características completa del 3144, podemos consultar su datasheet

PINEADO

El pineado de esta placa es:

1 : Este pin es la entrada negativa que alimenta la placa.

2 : Este pin es la entrada positiva que alimenta la placa. Tiene que estar entre +4,5V y +24V.

3 : Este pin es la salida del sensor. Es una salida de colector abierto, aunque se puede conectar directamente a una entrada digital (como nuestro Arduino) sin problemas. Tiene conectado un led smd en la propia placa con una resistencia de 680Ω. Nos dará un nivel digital alto cuando no detecte ningún campo magnético y un nivel bajo cuando lo detecte.















LED's INDICADORES

Tenemos un led smd con un resistencia de 680Ω que se encenderá cuando el sensor detecte un campo magnético.

PROBEMOS EL SENSOR KY-003

Vamos a montar en una placa protoboard el sensor KY-003 y conectarlo a un Arduino Mega.

NECESITAREMOS

Placa sensora KY-003

Placa protoboard grande

Arduino Mega 2560

Diodo LED rojo de 5mm y una resistencia que calcularemos de 220Ω y 1/4W

Cableado macho-macho o hilo rígido que entre en la protoboard

Soporte AFTP para Arduino Mega y protoboard grande

Cable USB corto de USB tipo A a USB tipo B

Imán permanente de Neodimio

ESQUEMA

En es esquema podemos ver:

- La placa Arduino Mega se encarga de alimentar la protoboard
- La placa sensora KY-003 está conectada en la protoboard y conectada a la alimentación de +5V
- El led D1 y la resistencia R1 están conectados a la alimentación de +5V para indicarnos cuando tiene alimentación la protoboard
- El pin de la placa sensora de salida está conectado al pin 10 del Arduino Mega
- La alimentación de todo el sistema se realiza a través del puerto USB

Para calcular la resistencia R1 del LED solo tenemos que ver el voltaje que va a caer en la resistencia y dividirlo entre la intensidad que queremos que pase por el LED.
La tensión que tiene la resistencia sería el voltaje total menos el voltaje que se queda el LED rojo (aprox. 1,5V). Esto nos deja 5V-1,5V = 3,5V caen en la resistencia.
Vamos a fijar una intensidad por el LED de 15mA (suficientes para que se encienda a buen brillo un LED rojo). Tendriamos entonces una resistencia de 3,5V/0,015A = 233,33Ω
El valor mas cercano al calculado es de 220Ω (Rojo-Rojo-Marrón). Las resistencias comunes de 1/4W deberían servir, ya que la potencia disipada por nuestra resistencia será de 3,5Vx0,015A = 0,05W, valor muy por debajo de los 0,25W máximos que es capaz la resistencia de disipar.


Vamos a ver algunas imágenes mas de cerca del montaje

Detalle de la conexión de la placa sensora

Detalle de la conexión de la placa sensora

Detalle de la conexión del LED y la resistencia R1

Detalle de la conexión de la placa Arduino Mega

PROGRAMACIÓN

¿Qué vamos a programar?, una lectura continua del pin 10 (donde está conectada la salida de la placa sensora) y encender el LED smd incluido en la placa en su salida 13 cada que vez se active el sensor.

A continuación tenemos el código fuente del Sketch terminado para consultarlo. Se puede escribir copiándolo o descargarlo desde aquí

CÓDIGO ARDUINO
/*
 * AFPT - Arduino Fácil Para Todos
 * 
 * Prueba Arduino Mega + KY003
 * 
 * Modulo_KY-003.ino
 * 
 * www.fantasystudios.es/arduino
 * 
 * Creado el 16 de Abril de 2020
 * Por Manuel Peláez
 * 
 */

// declaramos las variables con las entradas del sensor
int sensor = 10;

//declaramos las variables que usaremos para la lectura de las entradas
int estado_sensor=0;


void setup() {
  // put your setup code here, to run once:

  // declaramos una entrada y la salida al led smd de la placa en la salida 13
  pinMode(sensor, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);  
}

void loop() {
  // put your main code here, to run repeatedly:

  //leemos el estado del pulsador y del sensor
  estado_sensor = digitalRead(sensor);

  //Si el estado del sensor es bajo encendemos el led de la placa Mega2560 porque detecto un campo magnetico
  if (estado_sensor == LOW) {
    digitalWrite(LED_BUILTIN, HIGH);
  }
  //Si el estado del sensor es alto apagamos el led de la placa Mega2560 porque no detecto un campo magnetico
  else {
    digitalWrite(LED_BUILTIN, LOW);
  }

  delay(1);        // con esto ganamos estabilidad en la ejecución del programa
  
}

CÓDIGO ARDUINO

A continuación tenemos un video con todo el proceso completo.