Arduino Nano ESP32 - Sensor de Vibração SW-420

O módulo de sensor de vibração SW-420 consegue captar impactos repentinos ou tremores que ocorrem ao seu redor, o que o torna um componente prático para detectores de batidas, alarmes de impacto ou qualquer projeto que precise perceber uma pancada.

Neste guia, vamos aprender como usar o sensor de vibração SW-420 com o Arduino Nano ESP32. Em detalhes, vamos aprender:

Arduino Nano ESP32 and SW-420 vibration sensor module

Depois que o sketch básico estiver funcionando, você pode adaptá-lo para tocar um buzzer, piscar um LED ou enviar uma notificação sempre que o módulo captar um impacto.

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×SW-420 Vibration Sensor Module
1×Protoboard
1×Fios Jumper
1×(Opcional) 5V Power Adapter
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Sensor de Vibração SW-420

O módulo de sensor de vibração SW-420 reage a tremores, batidas ou impactos no ambiente ao redor. Dentro do módulo há uma pequena chave baseada em mola posicionada ao lado de um contato metálico; um comparador LM393 na placa monitora essa chave e produz um sinal digital limpo no instante em que a vibração a perturba. Um potenciômetro trimmer na placa permite ajustar quanta vibração é necessária antes de ele informar um acionamento.

Pinagem

O módulo de sensor de vibração SW-420 possui três pinos:

  • Pino VCC: conecte ao VCC (3.3V a 5V)
  • Pino GND: conecte ao GND (0V)
  • Pino DO: pino de saída digital, LOW enquanto o módulo está em repouso e HIGH no instante em que a vibração ou o impacto é captado. Ligue este pino a um pino de entrada do Arduino Nano ESP32.
SW-420 Vibration Sensor Pinout
image source: diyables.io

Dois LEDs na placa ajudam em uma verificação visual rápida:

  • Um LED de alimentação permanece aceso sempre que o módulo está alimentado.
  • Um LED de acionamento acende junto com o pino DO sempre que a vibração é detectada.

Como Funciona

O pino de saída acompanha o estado da chave interna:

  • Em repouso, a chave de mola permanece aberta, então o comparador mantém o pino de saída em LOW.
  • Quando um impacto ou uma vibração perturba a chave, ela fecha momentaneamente, e o comparador leva o pino de saída para HIGH.

Diagrama de Ligação

The wiring diagram between Arduino Nano ESP32 and SW-420 Vibration Sensor

This image is created using Fritzing. Click to enlarge image

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

  • Configure o pino conectado à saída DO do sensor como entrada digital usando pinMode(). Por exemplo, o pino D3
pinMode(D3, INPUT);
int vibrationState = digitalRead(D3);

Código Arduino Nano ESP32 - Detectando vibração

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-sw-420-vibration-sensor */ #define SENSOR_PIN D3 // The Arduino Nano ESP32 pin D3 connected to the DO pin of the SW-420 vibration sensor int prev_vibration_state = LOW; // The previous reading from the input pin (idle/resting state) int vibration_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP32's input pin vibration_state = digitalRead(SENSOR_PIN); if (prev_vibration_state == LOW && vibration_state == HIGH) Serial.println("Vibration detected!"); else if (prev_vibration_state == HIGH && vibration_state == LOW) Serial.println("Vibration stopped."); // save the last state prev_vibration_state = vibration_state; }

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Ligue os componentes de acordo com o diagrama acima.
  • Copie o código acima para o Arduino IDE.
  • Selecione a placa e a porta COM corretas e, em seguida, clique no botão Upload.
  • Dê uma batidinha leve no módulo do sensor ou balance-o suavemente.
  • Abra o Serial Monitor para ver os eventos informados.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Vibration detected! Vibration stopped. Vibration detected! Vibration stopped.
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

A partir daqui, você pode estender o sketch para acender um LED, tocar um buzzer ou enviar uma notificação sempre que o SW-420 informar um impacto. Confira os tutoriais indicados no final desta página para ter ideias de onde ir a seguir.

Solução de Problemas

Se o sensor de vibração SW-420 não se comportar como esperado, faça estas verificações:

  • Ajuste a sensibilidade: Gire o potenciômetro da placa para aumentar ou diminuir a quantidade de vibração necessária para acionar a saída.
  • Isole a vibração ambiente: Monte o módulo longe de motores, ventiladores ou outras fontes de vibração constante de fundo que possam causar falsos acionamentos.
  • Verifique a ligação: Confirme se os pinos VCC, GND e DO estão conectados aos pinos corretos do Arduino Nano ESP32.
  • Verifique a fonte de alimentação: Certifique-se de que o módulo esteja recebendo uma alimentação estável de 3.3V a 5V.

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!