InicioTarjetas de DesarrolloArduinoFuncionamiento de los Sensores de Inclinación KY-020, KY-027 y KY-017

Funcionamiento de los Sensores de Inclinación KY-020, KY-027 y KY-017

En este tutorial trabajaremos con algunos sensores que usan el principio de inclinación para generar una señal de salida , los cuales son: KY-027, KY-017 y KY-020. El KY-027 Y 017 cuentan con un interruptor por burbuja de mercurio y el KY-020 censa por medio de un balin de acero.

Observaremos el funcionamiento de cada uno de los módulos y concluiremos incluyendo un zumbador activo que nos ayudara a identificar cuando el sensor este inclinado.

Para ello requeriremos conocer el funcionamiento básico de cada dispositivo.

Características de los módulos de inclinación.

A diferencia del KY-017 en donde el Led tiene una configuración por default, el sensor KY-027 se puede configurar la relación del Led-Interruptor y decidir por programación si enciende o apaga cuando el mercurio cierre/abra el circuito. Contemplando estas características, pasaremos a desarrollar nuestro proyecto con el siguiente material:

Diagrama de Conexión para KY-027

Realizaremos la siguiente conexión para visualizar el funcionamiento del Sensor Magic Light Cup.

Código en Arduino IDE y KY-027

Con el siguiente programa realizaremos la lectura del sensor y cuando detecte inclinacion,el led se encenderá.

int ky27L = 5;      // Definimos el LED del sensor
int ky27 = 7;       // Definimos el pin del sensor
int inclina;        // Definimos un valor a la variable 

void setup() 

{
    Serial.begin(9600);       //inicia el Monitor Serial a 9600 bauds
    pinMode(ky27L, OUTPUT);   // Definimos el pin del LED del sensor como Salida
    pinMode(ky27, INPUT);     // Definimos el pin del sensor como entrada
}

void loop() 

{
  inclina = digitalRead(ky27);       // Lectura del pin digital conectado al sensor
  Serial.println(inclina);           // Se imprime el valor guardado en "inclina"
  delay(1000);                       //Duración del proceso 1 segundo
  if (inclina == 1)                 // Cuando el Mercurio abre el circuito nuestro sistema                               
  { 
   digitalWrite(ky27L, HIGH);       //detectara que hubo inclinación y prendera el led de lo contrario
   }
   else                            //De lo contrato será indicaron de que el sistema esta estable 
   { 
    digitalWrite(ky27L, LOW);      //no encenderá el led 
}
}

En el Monitor Serial, se visualizara el valor dependiendo de la posición del mercurio, las cuales son:

  • Abre el circuito: Se detecta inclinación que será igual a 1
  • Cierra el circuito: Posición Horizontal es igual a 0
  • Como se puede observar en el siguiente video:

    Usaremos un código similar para probar el módulo KY-017, solo variaremos un poco la conexión y programación en IDE Arduino.

    Diagrama entre UNO R3 y KY-017

    El Sensor Interruptor de Mercurio KY-017 también incluye un Led pero a diferencia de su análogo KY-027 no requiere un pin de salida para ser activado.

    Código en Arduino IDE y KY-017

    Con el siguiente programa podremos visualizar como es el funcionamiento del sensor de inclinación.

    
    int ky17 = 7;       // Definimos el pin del sensor
    int inclina;        // Definimos un valor a la variable 
    
    void setup() 
    
    {
        Serial.begin(9600);       //inicia el Monitor Serial a 9600 bauds
        pinMode(ky17, INPUT);     // Definimos el pin del sensor como entrada
    }
    
    void loop() 
    
    {
      inclina = digitalRead(ky17);       // Lectura del pin digital conectado al sensor
      Serial.println(inclina);           // Se imprime el valor guardado en "inclina"
      delay(1000);                       //Duración del proceso 1 segundo
      }
    

    A diferencia del ejemplo anterior el Led se encenderá en estado de reposo.

    Para finalizar el tutorial, probaremos el modulo de inclinación KY-20, que a diferencia de los dos primeros, el interruptor se basa en un pequeño balin de acero.

    Diagrama entre UNO R3 y Sensor de Inclinación

    Ya que el módulo KY-020 no incluye una alerta visual (Led)se incluirá un Buzzer Activo KY-012, el cual emite un tono cuando detecte una señal en ALTO/HIGH. A continuación el diagrama.

    Código para el KY-020 y KY-012

    A diferencia de los códigos anteriores declararemos una variable extra para poder controlar el buzzer activo ky-012, el cual alertará cuando el sensor sea inclinado.

    
    
    #define buzz 9 // Definimos el pin del Buzzer Activo
    #define ky20 7 // Definimos el pin del sensor
    int inclina; // Definimos un valor a la variable
    
    void setup() 
    
    {
    Serial.begin(9600);       //inicia el Monitor Serial a 9600 bauds
    pinMode(buzz,OUTPUT); // Definimos el Buzzer como Dispositivo de Salida    
    pinMode(ky20, INPUT);     // Definimos el pin del sensor como entrada
    }
    
    void loop() 
    
    {
      inclina = digitalRead(ky20);       // Lectura del pin digital conectado al sensor
      Serial.println(inclina);           // Se imprime el valor guardado en "inclina"
      delay(1000);                       //Duración del proceso 1 segundo
    if (inclina == 1) // Cuando el sensor detecta el estado en Alto se prende el led de lo contrario se apaga
    {
    digitalWrite(buzz, HIGH);
    
    }
    else
    {
    digitalWrite(buzz, LOW);
    
    }
    }   
    

    Si requieres otro ejemplo en donde la activación de una alerta sea mediante buzzer te recomendamos revisar los tutoriales:

    TUTORIALES RELACIONADOS