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
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
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á.
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
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.
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.
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.
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
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.
hola este sensor se puede utilizar para un motor
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.
Hola, buenas tardes. Es posible graficar el comportamiento del sensor en tiempo real
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.
buenas tardes este sensor es adecuado para medir la vibración de las aspas de un aerogenerador de baja potencia
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.
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
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.
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.
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.
Hola una pregunta, ¿este sensor me serviría para detectar si un objeto deja de estar en movimiento por un usuario (ejemplo que lo cargue de un lado a otro) a que pase a estar quieto en suspención?
Hola Vanesa. Este sensor de vibración es algo muy simple, normalmente es como un resorte y por el centro del resorte hay un terminal, cuando hay una vibración el resorte se mueve y toca el terminal que se encuentra dentro de él y cierra el circuito, no sé si ese tipo de sensibilidad te sirve para el problema que planteas, pero te recomiendo usar un acelerómetro para esto, que puede captar el cambio de aceleración lineal de un objeto y por supuesto cuando se queda en reposo, creería yo que es más adecuado. Si gustas me puedes escribir planteándome tu idea de forma mas detallada a ver cómo te puedo asesorar mejor.
Buenos días estoy intentando montar un prototipo similar en Tickercad pero no consigo obtener el módulo sensor de vibración SW-420 . Con que lo habeis sustituido? Desde ya, muchas gracias!
Hola Noelia.
En Tinkercad puedes hacer muchos proyectos pero está limitado por que hay una serie increíble de dispositivos de entrada o salida que allí no vas a encontrar, como el sensor de vibración, ten en cuenta que es al fin y al cabo una especie de pulsador, por que podrías reemplazarlo por uno o el sensor de inclinación, cualquiera de estos dos te serviría para efectos prácticos, pero no haría el mismo trabajo.
Espero te haya servido esta información, si tienes alguna otra pregunta, no dudes en consultarme.