InicioTarjetas de DesarrolloArduinoComparación entre Interruptores Magnéticos KY-021, KY-025,KY-024 y KY-35

Comparación entre Interruptores Magnéticos KY-021, KY-025,KY-024 y KY-35

En este tutorial explicaremos el funcionamiento de los sensores KY-021, KY-025, KY-024 y KY-035, que basan su principio de operación en la detección de campos magnéticos.

Realizaremos pruebas de funcionamiento a cada uno y finalizaremos usando el Módulo KY-034, el cual es un LED Flash de 7 colores que se activará en presencia de un campo magnético.

Introducción

A continuación explicaremos cada uno de los dispositivos:

Teniendo en cuenta las características de cada uno de los módulos, probaremos su funcionamiento en la tarjeta de desarrollo UNO R3. Para esto requeriremos:

Diagrama de Conexión entre UNO R3 y KY-021

Primero revisaremos la lectura de datos de forma digital del Sensor Interruptor Magnético, para lo cual realizaremos la siguiente conexión:

Código en Arduino IDE e Interruptor Magnético

En el siguiente programa se observa como usaremos el LED de la tarjeta de desarrollo UNO R3 correspondiente al pin 13, el cual, se encenderá en presencia de un imán.

 
int Led = 13;             // Led del pin13 de la tarjeta UNO R3
int ky21 = 2;             // Pin2 de Digital para el sensor magnético KY-021
int interruptor;          // variable INTERRUPTOR para guardar el dato del KY-021

void setup()
{
  Serial.begin(9600);       //Inicialización de puerto serial a 9600 baudios
  pinMode (Led, OUTPUT);    //Declaración de pin13 como pin de Salida
  pinMode (ky21, INPUT);    //Declaración del KY-021 como pin de Entrada
}

void loop()
{
  interruptor = digitalRead (ky21);          // El valor que sea leído de la interfaz digital de ky-021 será asignado a la variable INTERRUPTOR
  Serial.println(interruptor);               // En el Monitor Serial se imprimirá el valor leído por ky-021
                                             //Se comprobó que en estado de reposo el sensor nos arroja un 1 lógico por lo tanto...
    if (interruptor == HIGH) {                // Cuando este en alto/1 apagaremos el led
        digitalWrite(Led, LOW);
    }
    else{                                   //De lo contrario cuando detecte algún imán, dará una señal en bajo por lo cual
    digitalWrite(Led, HIGH);                //Encenderá el led        
    Serial.println("Campo magnético detectado");
    }
}

En el siguiente video se puede observar el correcto funcionamiento del interruptor, puedes conectar directamente un LED en el pin 13 de la tarjeta de desarrollo para hacer mas notoria la salida. También se pueden observar los datos desde el Monitor Serial.

Notese que en estado de reposo el sensor nos arroja estado en 1/ALTO/HIGH y cuando detecta el campo del imán un estado en 0/BAJO/LOW.

Diagrama de Conexión entre UNO R3 y KY-025

Ahora procederemos a realizar la conexión entre nuestra tarjeta de desarrollo y el Interruptor por Campo Magnético, este a comparación del anterior tiene 4 pines, ya que cumple con darnos información de datos analógicos y digitales.

Código para el Interruptor Magnético KY-025

Para comprender mejor este módulo el siguiente programa solo realizaremos lectura de los datos digitales y analógicos cada medio segundo.

int Dky25 = 3;               // KY-025 para la interfaz digital
int Aky25 = A0;              // KY-025 para la interfaz analógica
int D;                       //Variable D, para almacenar valores digitales de KY-025

void setup()
{

pinMode(Led, OUTPUT);        //Declaración de Led,pin12 como pin de Salida
pinMode(Dky25, INPUT);       //Declaración del KY-021 como pin de Entrada Digital
Serial.begin(9600);          //Inicialización de puerto serial a 9600 baudios

}
void loop()
{
Serial.print("Digital");                //Mensaje en el Monitor Serial, para identificar...
Serial.print("-");                      //...los valores de lectura por puerto digital o...
Serial.println("Analógico");            //... analógico
Serial.print(digitalRead(Dky25));       //Impresión de valores provenientes del pin digital
Serial.print("-");
Serial.println(analogRead(Aky25));      // impresión de valores provenientes del pin analógico
delay(500);                             //este proceso dura medio segundo  

} 

Diagrama de Conexión Tarjeta UNO R3 y KY-035

Finalmente revisaremos como es el funcionamiento del Sensor Magnético Analógico, el cual, a diferencia de los otros dos modulos su funcionamiento se basa en el sensor AH49E.

Código para el Interruptor Magnético Analógico en IDE Arduino

Ahora bien, realizaremos de la misma manera el programa para entender el funcionamiento del sensor y visualizaremos la detección de un imán por medio del Monitor Serial y el Led en el pin 13, como anteriormente ya realizamos.

int senal = A0 ;                //Pin Analógico del Arduino A0 para el KY035
int valor;                      //Variable en donde estará guardando el valor leído por el sensor
int Led = 13;                   // Pin13 para el Led 

void setup()
{
  Serial.begin(9600);           //Inicialización de puerto serial a 9600 baudios
  pinMode (senal, INPUT);       //Declaración del KY-021 como pin de Entrada Analógica
  pinMode (Led, OUTPUT);        //Declaración de Led,pin12 como pin de Salida
}
void loop()
{
valor = analogRead(senal);              //Se guarda la lectura de KY035 en la variable valor
Serial.println(valor);                  //Imprima los valores de guardados, esto nos ayudara a
                                        //saber el comportamiento del sensor y que valores arroja detecte o no el imán
delay(500);                             //este lectura durara medio segundo

if (valor >= 518 && 528 >= valor) {     //sabiendo que en estos rangos no detecta presencia magnética
Serial.println("NO hay Imán");          // se realizara la condición e imprimirá que no hay detección de imán
digitalWrite(Led,LOW);                  //No hay detección de imán 
}
else {                                 //Cuando los valores analógicos se encuentren fuera ..
Serial.println("Hay Imán");            //...de los rangos propuestos entonces.. 
digitalWrite(Led,HIGH);                //...Detección de imán y encenderá
}
} 

A diferencia de los otros dos sensores , tuvimos que delimitar un rango por medio de la función IF, en los valores analógicos donde NO se detecta el campo magnético del imán; estos valores pueden variar por sensor. A continuación un video en donde muestra lo antes explicado:

Diagrama de conexión para el Sensor de Campo Magnético

Así como el sensor KY-025, este sensor tiene 4 pines para poder también realizar muestreo de datos analógico dependiendo el campo magnético detectado. Añadiremos un led en el pin 12 para que sea mas visible el cambio del interruptor.

Código para visualizar funcionamiento del KY-024

En el siguiente código probaremos la lectura analógica y digital de nuestro sensor, notaremos que el Monitor Plotter nos arrojara los valores que la entrada analógica detectará y por el lado del pin digital nos ayudará a tener una salida (0,1) para que el led pueda encender.

int led=12;
int kyD=3;

void setup(){
Serial.begin(9600);
pinMode (led, OUTPUT) ; 
pinMode (kyD, INPUT);
}

void loop(){
int iman=analogRead(A0);
Serial.println(iman);
delay(1);

int val=digitalRead(kyD);
if (val==HIGH){

digitalWrite(led,HIGH);
}
else{
digitalWrite(led,LOW);
}
}

void setup()
{
  Serial.begin(9600);
  pinMode (Led, OUTPUT); // Definimos el LED como salida
  pinMode (pin_s, INPUT); // Definimos el pin del sensor como entrada
}
void loop()
{
  val = digitalRead(pin_s) ; // Lectura del pin digital conectado al sensor
  Serial.println(val); // Se imprime el valor val
  delay(1000);
  if (val == 1) // Cuando el sensor detecta el estado en Alto se prende el led de lo contrario se apaga
  {
    digitalWrite(Led, HIGH);
  }
  else
  {
    digitalWrite(Led, LOW);
  }
} 

Se puede observar en el siguiente video que los valores en donde registra la detección del imán es por debajo de 530 aproximadamente y se puede observar las variaciones que tiene en presencia del campo magnético.

Ahora que ya sabemos el funcionamiento de cada uno de los módulos KY; realizaremos una una prueba en donde incluiremos al KY-034, el cual es un Led Flash que se activara cuando el KY-025 detecte un campo magnético.

Prueba con Led Flash 7 Colores

Realizaremos la siguiente conexión entre los módulos KY, el Led-KY034 lo conectaremos a 3.3V aunque también funciona a 5V y usaremos el pin12 para que reciba la señal de activación.

Código para los módulos KY-025 y KY-034

Usaremos parte del código del interruptor por campo magnético que anteriormente programamos e incluiremos una variable “D” que es la que activara a nuestro Led Flash.

int Led=12;                  // Pin12 para el Led 
int Dky25 = 3;               // KY-025 para la interfaz digital
int Aky25 = A0;              // KY-025 para la interfaz analógica
int D;                       //Variable D, para almacenar valores digitales de KY-025

void setup()
{

pinMode(Led, OUTPUT);        //Declaración de Led,pin12 como pin de Salida
pinMode(Dky25, INPUT);       //Declaración del KY-021 como pin de Entrada Digital
Serial.begin(9600);          //Inicialización de puerto serial a 9600 baudios

}
void loop()
{
Serial.print("Digital");                //Mensaje en el Monitor Serial, para identificar...
Serial.print("-");                      //...los valores de lectura por puerto digital o...
Serial.println("Analógico");            //... analógico
Serial.print(digitalRead(Dky25));       //Impresión de valores provenientes del pin digital
Serial.print("-");
Serial.println(analogRead(Aky25));      // impresión de valores provenientes del pin analógico 

D=digitalRead(Dky25);                  //guardaremos el valor del pin Digital en la variable D
if (D==0){                             //Si D es igual a 0
digitalWrite(Led,LOW);                 //No hay detección de imán 

}
else {                                 //de lo contrario D=1
digitalWrite(Led,HIGH);                //Detección de imán y encenderá el led
delay(8000);
}
} 

El código incluye un delay de 8 segundos, esto para poder observar como es el funcionamiento del Led.

Adicional a estos sensores KY, te recomendamos el tutorial Proyecto con Sensor Magnético KY-003 , que también es otro tipo de interruptor magnético y funcionalidad se basa en el principio de Efecto Hall.

TUTORIALES RELACIONADOS