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á.


8 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
  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

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.