Proyecto 18 – Sensor de vibración

Este es un proyecto en el cual usaremos el Arduino para leer un sensor de vibración SW-420 y encender un LED cuando hay vibraciones. Para este fin utilizaremos el módulo de vibración basado en el sensor SW-420

Este es otro de esos proyectos muy fáciles de implementar y de código muy sencillo.

Módulo sensor de vibración

Módulo sensor de vibración basado en el SW-420

Este módulo sensor de vibración consiste en un sensor SW-420, resistencias, capacitores, un potenciómetro, el integrado comparador LM393, LED de estado y LED en encendido. El SW-420 es un sensor que detecta las vibraciones a partir de un umbral que puedes fijar con el potenciómetro que incluye. El módulo puede detectar cualquier tipo de vibración por encima del umbral de vibración que tengamos configurado con el potenciómetro.

Es muy útil para una gran variedad de dispositivos que se deben activar/desactivar por las vibraciones, como por ejemplo la construcción de una alarma para tu moto o automóvil, alarma de terremoto, auto inteligente, etc.

Especificaciones:

  • Voltaje de operación: 3.3 – 5V
  • Consumo: 15mA
  • Tipo de salida: Digital

Componentes

  • Arduino UNO o placa compatible
  • Protoboard o placa de pruebas
  • Módulo sensor de vibración
  • Cables o Jumpers
  • 1 LED
  • 1 resistencia de 220Ω
Proyecto 18 – Sensor de vibración

Basados en el diagrama lo primero que vamos a hacer es conectar el pin VCC del módulo a los 5V del Arduino, de igual forma conectamos el GND del módulo al GND del Arduino y el pin DO del sensor al pin 8 del Arduino. Luego conectamos la resistencia del 220Ω a la tierra del Arduino y al cátodo del LED, por último conectamos el ánodo del LED al pin 13 del Arduino.

Código

int pinSensor = 8;
int pinLed = 13;

void setup() 
{
  pinMode(pinSensor,INPUT);
  pinMode(pinLed,OUTPUT);
}

void loop() 
{
  if(digitalRead(pinSensor))
  {
    digitalWrite(pinLed,HIGH);
    delay(1000);
    digitalWrite(pinLed,LOW);
    delay(1000);
   }
   else
     digitalWrite(pinLed,LOW);
}

Comenzaremos a revisar el código, primero vamos a ver las declaraciones de las variables.

int pinSensor = 8;
int pinLed = 13;

Declaramos 2 variables, la primera de tipo entero int pinSensor = 8, la cual utilizaremos como referencia que al pin 8 del Arduino le conectaremos el pin digital de sensor, la siguiente variable que declaramos int pinLed = 13 es la que utilizaremos para definir al pin en el cual vamos a conectar el led al Arduino.

En la función setup:

pinMode(pinSensor,INPUT);
pinMode(pinLed,OUTPUT);

Lo primero que hacemos es establecer que el pin del sensor es de entrada pinMode(pinSensor,INPUT), y luego establecemos que el pin del led es de salida pinMode(pinLed,OUTPUT).

Y en la función loop:

if(digitalRead(pinSensor))
{
  digitalWrite(pinLed,HIGH);
  delay(1000);
  digitalWrite(pinLed,LOW);
  delay(1000);
}
 else
   digitalWrite(pinLed,LOW);

Normalmente con este tiempo de sensores creamos una variable en la cual capturamos el valor del sensor, pero podemos ahorrarnos ese paso al hacer la lectura del sensor directamente desde el «if» if(digitalRead(pinSensor)) donde preguntamos que si la lectura del sensor es 1 o verdadera, entonces haga digitalWrite(pinLed,HIGH) con lo que energizamos el pin del LED es decir encendemos el LED, luego delay(1000)donde hacemos una pausa de un segundo, luego apagamos el LED digitalWrite(pinLed,LOW), y hacemos una pausa de nuevo de 1 segundo delay(1000).
Por otro lado si la condición del if no se cumple el LED permanece apagado digitalWrite(pinLed,LOW) y vuelve a comenzar el ciclo.

Resumen

En este proyecto nuestro Arduino estará conectado a un sensor de vibración que al detectar alguna vibración encenderá un LED por medio segundo y se apagará, si aun sigue el movimiento seguirá titilando y cuando cese el movimiento se apagará.


16 comentarios en «Proyecto 18 – Sensor de vibración»

  1. Buenas tardes. Es posible usar este sensor para medir las vibraciones naturales del suelo o estructuras. Cómo lo puedo adquirir. Qué sensibilidad tiene?
    Gracias. Hugo coral celular 3128313716

    Responder
    • Hola Hugo, este sensor de vibración no es el indicado para esta tarea que me comentas, por lo que entiendo quieres medir las vibraciones del suelo tal como lo haría un sismógrafo, no sabría a ciencia cierta que tipo de sensores serían los ideales para ese fin, pero si me confirmas puedo hacer la investigación de esos sensores.

      Responder
      • Hola, gracias por compartir el proyecto, quiero hacer lo mismo para medir las vibraciones naturales de la tierra, un sismógrafo, necesitaria medir las vibraciones en X, Y y Z, en el plano eso es lo que lo diferencia.
        ¿Hay algún sensor que me pueda servir?
        Y después pasar los datos a un programa que los interprete.
        Es un proyecto para mis alumnos, quedaría muy agradecida por su respuesta.

        Responder
        • Hola Carolina, el sensor de vibración como el SW-420 son sensores muy básicos, sólo detectan una vibración si existe pero no sirve para medir las magnitudes, para medir el movimiento en los ejes X, Y y Z te recomendaría utilizar un giroscopio con acelerómetro como podría ser el MPU6050 o solo un acelerómetro de 3 ejes como el ADXL335, con el que puedes medir movimientos e intensidad en estos 3 ejes. De momento no tengo un ejemplo del uso de este sensor ya que he estado muy ocupado en la oficina, pero pronto volveré a subir mas publicaciones.

          Responder
  2. Buenas noches. Le consulto si con varios sensores de vibración conectados a una sola placa Arduino podría obtener salida en sus correspondientes LED´s realizando las modificaciones en el código. La idea es tener como entrada por ejemplo a cuatro sensores de vibración y tener de salida a cuatro LED´s.
    Gracias

    Responder
    • Hola Iber, me disculpo por la tardanza en contestarte, la verdad no había visto el mensaje.
      Claro que es posible que tengas 4 sensores de entrada y un LED reaccionando a cada uno de los sensores, solo es que añadas estos cambios al código. Si necesitas ayuda no dudes en consultarme.

      Responder
    • Hola Rubén, si deseas utilizar proyecto para activar un motor, es posible, teniendo en cuenta que debes utilizar un puente H para manejar el motor, o un relé, ya que de lo contrario puedes quemar el pin del Arduino, debido a que no tienen mucha potencia para manejar algunos motores.

      Responder
    • Hola Israel, en programación siempre puedes tomar los datos y hacer con ellos lo que gustes, como por ejemplo el graficarlos, pero para esto debes crear tu propio sistema de gráficos, pero te recomiendo utilizar el serial plotter que trae el IDE de Arduino, solo debes ir al menú Herramientas -> Serial Plotter, en el IDE 1 de Arduino puedes utilizar el atajo Ctrl+Mayusculas+L, o en la versión 2 hay un ícono en la parte superior derecha del IDE oara graficar, ya los intervalos en los que quieres que se vayan graficando depende del delay que le des a tu código.

      Responder
    • Hola José, si utilizamos el módulo es posible cambiar la sensibilidad del mismo. Me parece bastante probable sea capaz de detectar esta vibración.

      Responder
  3. Qué tal buen día para remplazar el led y conectar un switch para que encienda una lámpara conectada a corriente directa 110 v (convencional de casa). Es decir el led se cambiará para que cierre el circuito de la lámpara y se prenda, escribo desde la Ciudad de México, se ocupa para un proyecto de Ing en mecatronoca un proyecto escolar. Saludos

    Responder
    • Hola Luis, realmente es posible lo que deseas, pero como tal no controlamos interruptores con el Arduino (ya que esa e la labor del código que hacemos junto con el Arduino, interrumpir o no la energía para que se prenda o se apague el bombillo) y menos podemos manejar corrientes de 110, pero cuando tenemos que interfazar corriente directa como la del Arduino a corriente alterna podemos utilizar un relé (hay otros métodos, pero es uno muy simple), que nos servirá como ese Interruptor que quieres, para fines prácticos hay un módulo de relé para Arduino, que se activa cuando lo energizas con 5V DC por un lado, y soporta hasta 220 V AC. Si necesitas más ayuda con este tema no dudes en contactarme.

      Responder
  4. Me parece muy interesante, yo podría usar como detector de vibraciones en motores eléctricos, como para detectar daños en rodamiento o daño en el eje, porque quusiera implementar para una materia universitaria como mantenimiento industrial como proyecto de clase, en conjunto con la materia de Microprocesadores.

    Responder
    • Hola Edgar, Muchas gracias por escribir y me disculpo por la demora para responder.
      Si tienes en cuenta la construcción de estos sensores que básicamente es un pin y al rededor de este pin hay una especie de resorte que cuando se mueve el resorte y hace contacto con el pin en su centro hace contacto y es como un pulsador o pulsor, pero tiene problemas al capturar movimientos en varios ejes, ya que por su construcción es así de sencilla. Yo supongo que podrías usar varios de estos sensores (solo los sensores, no usar los módulos, ya que son bastante grandes) en diferentes ejes sobre el motor y hacer una serie de pruebas si se pueden capturar esas vibraciones que esperas controlar, Ten en cuenta que hay una gran variedad de sensores de vibración con diferentes sensibilidades y métodos de fabricación. Por mi parte yo intentaría más bien utilizar un Giroscopio de 3 ejes como el MPU6050 que registran movimiento en los ejes X,Y,Z y puede que tenga más sensibilidad que el sensor de vibración.

      Responder

Deja un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.