¿Qué es un módulo interruptor de vibración?
El módulo KY-002 es un módulo compatible con Arduino que lleva integrado un interruptor de vibración SW-18015P.
Es un dispositivo electónico que se comporta como un interruptor. Se activa cuando detecta impactos o vibraciones y se desactiva cuando permanece en reposo.
Forma parte del kit de 37 sensores compatible con Arduino, pero también se puede comprar de forma independiente.
¿Para qué sirve el módulo KY-002?
El módulo KY-002 se utiliza para detectar vibraciones o movimientos físicos y activar o desactivar una función en respuesta a estos cambios. Este tipo de interruptor es comúnmente utilizado en una variedad de aplicaciones, desde dispositivos electrónicos pequeños hasta sistemas más grandes.
Algunos de los usos comunes de este tipo de interruptor incluyen:
- Dispositivos de juego: Algunos controladores de juegos tienen interruptores de vibración que generan retroalimentación táctil en respuesta a eventos en el juego. Por ejemplo, el controlador puede vibrar cuando el jugador choca con un obstáculo o recibe daño.
- Sistemas de alarma: Los interruptores de vibración se utilizan en sistemas de seguridad para detectar intentos de manipulación o vibraciones inusuales en puertas, ventanas o cajas de seguridad. Esto puede activar una alarma para alertar sobre posibles intrusiones.
- Juguetes y dispositivos electrónicos interactivos: En algunos juguetes y dispositivos electrónicos interactivos, los interruptores de vibración se utilizan para activar respuestas específicas al movimiento. Por ejemplo, un juguete puede emitir sonidos o luces cuando se mueve.
- Equipos industriales: En entornos industriales, los interruptores de vibración pueden ser utilizados para monitorear la vibración de maquinaria. Detectar vibraciones inusuales puede ayudar a prevenir problemas y realizar mantenimiento preventivo.
- Electrodomésticos: Algunos electrodomésticos, como lavadoras, secadoras o lavavajillas, pueden utilizar interruptores de vibración para detectar la finalización de ciertos ciclos o para indicar problemas en el funcionamiento.
- Automóviles: En vehículos, los interruptores de vibración pueden utilizarse en sistemas de airbags para detectar colisiones y desplegar los airbags en consecuencia.
Especificaciones del módulo KY-002
Estructura física
Como ya mencioné al inicio, el módulo lleva conectado un interruptor de vibración SW-18015P:
Y una resistencia de 10Kohms conectada al pin de alimentación:
Dispone de 3 pines, directamente conectados al sensor, que permiten una conexión muy sencilla en placas de prototipado y con microcontroladores, como Arduino:
Los pines del módulo son los siguientes:
- OUT: Salida digital del módulo. Etiquetada con S. Envía un pulso alto (HIGH) cuando se produce una vibración y un pulso bajo (LOW) cuando está en reposo.
- VCC: Alimentación del módulo. Es el pin central sin etiqueta. Soporta voltajes de entre 3.3V a 5V sin necesidad de resistencia.
- GND: Pin de conexión a tierra. Etiquetado como -.
IMPORTANTE: Puedes encontrar este módulo con un interruptor SW-520D conectado. Ten cuidado porque no se trata del KY-002 aunque lo vendan como tal. El sensor SW-520D es un interruptor de inclinación. Ya te lo enseñaré más adelante en otro artículo.
Especificaciones técnicas
Tensión de alimentación | 3.3V a 5V |
Dimensiones | 18,5 mm x 15 mm |
Temperatura de trabajo | -40ºC a 80ºC |
¿Cómo funciona el interruptor de vibración?
El interruptor de vibración tiene dos terminales y un cuerpo tubular.
Si quitas la película protectora que recubre el cuerpo del interruptor puedes ver que los terminales se extienden dentro del mismo. El filamento más fino en forma de muelle rodeando al otro:
Cuando se produce un impacto o una vibración el muelle se mueve y entra en contacto con el otro terminal, lo que hace que se cierre el circuito (es similar a presionar un pulsador). Cuando las vibraciones se detienen el muelle vuelve a su estado de reposo y deja de estar en contacto con el otro terminal. Esto hace que el circuito se abra (igual que soltar un pulsador).
¿Cómo conectar el módulo KY-002 con Arduino?
Materiales
En la siguiente tabla tienes la lista de materiales necesarios para conectar el módulo KY-002 con Arduino:
Una placa Arduino (Yo usaré Arduino UNO) | ||
Un módulo KY-002 | ||
Cables | ||
Una protoboard | ||
Un ordenador con el IDE de Arduino instalado |
Conexiones
Puedes ver en la siguiente imagen cómo conectar el módulo con Arduino:
La salida digital del módulo (S) va conectado con un pin digital. Yo he elegido el pin digital 2, pero puedas usar cualquier otro.
Los otros dos pines no tienen mucho misterio. El pin central (VCC) es el pin de alimentación, por lo que va conectado a los 5V de Arduino. El tercer pin (-) va conectado a tierra (GND).
¿Cómo programar el módulo KY-002 con Arduino?
La programación es similar a la de un interruptor. En el siguiente sketch puedes ver el código necesario:
//DECLARACIONES
const int KY002 = 2;
//CONFIGURACIÓN
void setup () {
Serial.begin(9600);
pinMode(KY002, INPUT);
}
//FUNCIÓN LOOP
void loop () {
if (digitalRead(KY002) == HIGH ) {
Serial.println("Vibración detectada");
}
}
Declaraciones
Primero declaramos una constante con el número del pin digital en el que está conectado el módulo:
const int KY002 = 2;
Si lo has conectado a otro pin cambia el 2 por el valor correspondiente.
Configuración
Dentro de la función setup() vamos a configurar dos cosas:
void setup () {
Serial.begin(9600);
pinMode(KY002, INPUT);
}
Usaremos el monitor serie para comprobar el valor que recibimos a través del pin digital, por eso inicializamos el puerto serie con Serial.begin(9600).
Por otro lado, tenemos que configurar el pin digital el el que está el módulo conectado como entrada (INPUT) para comprobar si recibimos un pulso alto (HIGH) o un pulso bajo (LOW). Para ello usamos la instrucción pinMode(KY002, INPUT).
Y con esto tendriamos todas las configuraciones necesarias.
Función loop
Dentro de la función loop analizaremos el pin digital KY002 para comprobar si se ha producido una vibración o no.
void loop () {
if (digitalRead(KY002) == HIGH ) {
Serial.println("Vibración detectada");
}
}
La instrucción digitalRead(KY002) nos devuelve HIGH si hay vibración y LOW en caso contrario. Con la ayuda de un if podemos comprobar el valor devuelto.
Si el valor es HIGH la condición del if será true (digitalRead(KY002) == HIGH) por lo que mostramos «Vibración detectada» en el monitor serie utilizando Serial.println(«Vibración detectada»).
Por el contrario, si el valor es LOW la condición del if es false. En este caso no muestra nada en el monitor serie.
Como ya sabes, la función loop() es un bucle infinito, por lo que la comprobación se realizará constantemente y podremos detectar una vibración de forma inmediata.
Ahora carga el sketch en tu Arduino y ejecútalo. Si dejas el sensor en reposo no deberías ver nada en el monitor serie. Ahora golpea un poco el sensor (sin pasarte, que no queremos romperlo 😄). Deberías ver en el monitor serie el mensaje «Vibración detectada»:
¡Suscríbete a la newsletter y no te pierdas nada!
Te avisaré cuando publique nuevo contenido en paraarduino.com y en mi canal de YouTube (@ParaArduino).