Arduino - Sensor de Vibração SW-420

Choques, batidas e tremores são fáceis de sentirmos, mas difíceis para um Arduino sozinho perceber. O módulo sensor de vibração SW-420 preenche essa lacuna: ele monitora perturbações mecânicas e as informa como um sinal digital simples, o que é útil para alarmes de segurança, registradores de impacto ou qualquer projeto que precise reagir quando algo é batido ou sacudido.

Neste tutorial, vamos aprender:

Sensor de vibração SW-420 com Arduino

Depois que o sketch básico estiver funcionando, você pode ampliá-lo para soar um buzzer, piscar um LED ou enviar um alerta sempre que uma vibração for captada.

Sobre o Sensor de Vibração SW-420

O módulo sensor de vibração SW-420 reage a tremores, batidas ou choques ao seu redor. Dentro do módulo há uma pequena chave baseada em mola posicionada perto de um contato metálico; quando uma vibração perturba a mola, um comparador LM393 integrado transforma essa perturbação mecânica em um sinal digital limpo, de modo que o Arduino só precisa ler um pino em HIGH ou LOW em vez de lidar com leituras analógicas ruidosas.

Pinagem do Sensor de Vibração SW-420

O módulo SW-420 disponibiliza três pinos:

  • Pino VCC: precisa ser conectado ao VCC (3.3V a 5V)
  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino DO: é um pino de saída: LOW enquanto tudo está parado, HIGH no momento em que uma vibração ou choque é detectado. Este pino precisa ser conectado a um pino de entrada do Arduino.
Pinagem do Sensor de Vibração SW-420
image source: diyables.io

Há dois LEDs na placa:

  • Um LED indicador de alimentação
  • Um LED indicador que acende sempre que o pino DO vai para HIGH (vibração detectada)

Um pequeno potenciômetro na placa permite aumentar ou diminuir a sensibilidade, de modo que toques leves ou apenas choques mais fortes possam acionar a saída, dependendo de como você o girar.

Como Funciona

  • Enquanto o módulo está parado, a chave de mola permanece aberta, o comparador mantém sua saída em LOW e o LED de acionamento fica apagado.
  • Quando uma vibração ou choque perturba a mola, a chave fecha momentaneamente, o comparador leva a saída para HIGH e o LED de acionamento acende.

Diagrama de Ligação

Diagrama de Ligação do Sensor de Vibração SW-420 com Arduino

This image is created using Fritzing. Click to enlarge image

Como Programar o Sensor de Vibração SW-420

  • Configura o pino do Arduino no modo de entrada digital com a função pinMode(). Por exemplo, o pino 5
pinMode(5, INPUT);
  • Obtém o nível lógico atual desse pino com a função digitalRead().
int vibrationState = digitalRead(5);

Código Arduino - Detectando vibração

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-sw-420-vibration-sensor */ // Arduino's pin connected to DO pin of the SW-420 vibration sensor #define SENSOR_PIN 5 int previousState = LOW; // the previous reading from the input pin (LOW = idle) int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the input pin: currentState = digitalRead(SENSOR_PIN); if (previousState == LOW && currentState == HIGH) Serial.println("Vibration detected!"); else if (previousState == HIGH && currentState == LOW) Serial.println("Vibration stopped."); // save the current state for the next loop previousState = currentState; }

Passos Rápidos

  • Copie o código acima e abra-o com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Bata levemente ou sacuda o módulo SW-420 com cuidado
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Vibration detected! Vibration stopped. Vibration detected! Vibration stopped.
Ln 11, Col 1
Arduino Uno on COM15
2

A partir daqui, você pode acionar um buzzer, acender um LED ou enviar uma notificação sempre que uma vibração aparecer. Você pode encontrar mais informações e instruções passo a passo nos tutoriais fornecidos no final deste tutorial.

Solução de Problemas

Se o sensor de vibração SW-420 não estiver funcionando corretamente, tente os seguintes passos:

  • Ajuste a sensibilidade: Gire o potenciômetro da placa para deixar o módulo mais ou menos sensível; se ele nunca disparar, tente girá-lo para o outro lado.
  • Isole o módulo: Máquinas próximas, ventiladores ou passos podem sacudir a superfície onde ele está montado e causar disparos falsos, então monte-o longe de fontes de vibração não relacionadas.
  • Verifique a ligação: Certifique-se de que os pinos VCC, GND e DO estejam conectados corretamente.
  • Verifique a fonte de alimentação: Garanta que a fonte de alimentação esteja estável para leituras consistentes.

Vídeo

Referências de Funções

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!