Sensor de Vibrações: Detectando Oscilações Sonoras

Neste tutorial utilizaremos o sensor de vibração com arduino. Este, no que lhe concerne, é muito utilizado para alarmes e detecção de vibrações do meio. Vamos visualizar como o pequeno componente funciona e desenvolver uma aplicação para ele.

kit robotica educacional com Arduino ESP ou Microbit

O  que é o módulo sensor de vibração?

O sensor como todos os outros trabalha com os conceitos físicos.

– Funcionamento

Precipuamente, o sensor possui uma esfera de metal solta dentro de um cilindro acoplado a ele, quando este sensor sente vibrações a esfera se movimenta(Vibra) desfazendo o contato com os dois terminais que vão para o sensor. Além disso, enquanto o sensor não está detectando vibrações, a saída fica em nível logico baixo, somente quando o sensor detecta um certo nível de vibração regulado manualmente no trimpot a saída fica em nível logico alto.  Uma das inúmeras aplicações para este sensor é no monitoramento de condições de um determinado equipamento, ou seja, mede as vibrações de um equipamento onde quando é detectado um nível de vibração anormal logo é informado o possível defeito.

— Vibração

As vibrações ou oscilações são movimentos que se repetem de forma contínua ou não dado um intervalo de tempo. As direções das ondas de vibração são com toda certeza longitudinais e transversais. Ela está em toda nossa volta já que tudo o que é material está em constante vibração

Onda transversal

Por analogia podemos observar as moléculas de água as quais entre seus 3 estados o mais agitado, que estão vibrando com mais intensidade é o gasoso.

Molécula vibrando 

– Frequência

A frequência está relacionada com a vibração. Ela é a quantidade de vezes que ocorre a vibração completa dado um intervalo de tempo de 1 segundo. Podemos usar as figuras de Chladni que dependendo da frequência da vibração sobre o composto em cima da tela preta temos formas diferentes.

Figuras de Chladni

No sensor de vibração a frequência é fundamental para seu funcionamento, pois sem ela não seria possível identificar as vibrações irregulares de um equipamento.

– Os terminais deste sensor são:

  • VCC(+) – Tensão de entrada, entre 3,3 a 5 volts
  • GND(-) – O pino de O V do módulo conectado ao GND do Arduino ou fonte
  • Saída Digital(D0)– Pino de saída digital (retorna HIGH ou LOW)

Módulo do sensor de vibrações

Mãos à obra — Configurando um Sensor de Vibrações

Componentes Necessários

 

– Montando o projeto:

Primeiramente conecte o LED e o resistor na protoboard.  Logo depois, a perna maior do LED será conectada no resistor e a menor no negativo da  protoboard. Já a outra extremidade do resistor será conectada ao pino 12 do arduino. Em seguida conecte o VCC do sensor de vibração no 5V do arduino e o GND do sensor no negativo da protoboard. A saida digital(D0) do sensor será conectada ao pino 5 do arduino. Depois de ter realizado os passos anteriores conectem o GND do arduino no negativo da protoboard. Veja abaixo o circuito do sensor com mais detalhes:

Diagrama de montagem do sensor de vibração

– Programando o Arduino:

Vamos agora conectar o arduino no computador e abrir a IDE arduino.  Escreva o programa abaixo na IDE e compile o programa para o seu arduino.

Antes de carregar o programa, você precisa selecionar qual porta você deseja usar para fazer o carregamento do seu programa no Arduino (upload). Dentro do Arduino IDE, clique no menu Ferramentas (tools) e abra o submenu Porta(Port). Clique na porta que seu Arduino está conectado, tal como COM3 ou COM4. Geralmente aparece o nome da placa Arduino : “COM3 (Arduino/Genuino Uno)”.

#define pinoLed 12 //Pino digital utilizado pelo led
#define pinoSensor 5 //Pino digital utilizado pelo sensor

int ler = 0; // Declaração da Variavel "ler"
void setup(){
  Serial.begin(9600);
  pinMode(pinoSensor, INPUT); //Define o pino como entrada
  pinMode(pinoLed, OUTPUT); //Define o pino como saída
}

void loop(){
  ler = digitalRead(pinoSensor);// A varialvel "ler" recebe o nivel logico lido no pino do sensor de vibrações
  Serial.println(ler);// Printa no monitor serial o valor atribuido a variavel "ler"
  delay(150);// Espera 150 milisegundos
  if(ler == HIGH){ //Se a leitura do pino for igual a low, executa
      digitalWrite(pinoLed, HIGH); //ACENDE O LED
  }else//Senão, executa
  {
    digitalWrite(pinoLed, LOW); //APAGA O LED
  }
}

– Testando o funcionamento:

Caso tudo estiver correto o resultado será igual à imagem abaixo em que o sensor de vibração ficará constante em nível lógico baixo(LOW) enquanto ele não detectar vibração, por exemplo. E ao detectar vibração o nível lógico da saida vai para alto (HIGH).

 

ATENÇÃO: não esqueça de definir a placa e a porta que esta utilizando para carregar o programa.

 

Imagem do circuito do sensor de vibração funcionando

Como resultado, ao detectar uma quantidade de vibração pré-determinada ajustando a sensibilidade no potenciômetro(trimpot) o LED acenderá, tente utilizar uma chave de fenda ou algo do tipo e bata com ela em uma superfície rigida , certifique-se se o sensor esta perto para detectar as vibrações.

Potenciômetro do sensor para a regulação de sensibilidade

Podemos visualizar o sensor funcionando através do monitor serial já que inicializamos ele com a função Serial.begin(9600) basta clicar na lupa no canto direito superior da IDE arduino como na imagem abaixo:

Monitor serial

 

Entendendo a fundo:
Software

— Definições e variáveis utilizadas no projeto do sensor de vibração com arduino

A instrução #define apenas associa as portas dos pinos do arduino a nomes referente aos componentes conectados nestes pinos. O pino 12 está definido como pinoLed e o pino 5 está como pinoSensor. Logo depois as variáveis declaradas com o tipo int são atribuídas a elas valores escolhidos pelo programador. A variável ler do tipo int foi atribuído o valor 0.

#define pinoLed 12 //PINO DIGITAL UTILIZADO PELO LED
#define pinoSensor 5 //PINO DIGITAL UTILIZADO PELO SENSOR
int ler = 0; // Declaração da Variavel "ler"

— Função Setup – Definindo pinos do sensor de vibração com arduino

A função setup é aquela que ira rodar apenas uma vez quando nosso programa for iniciado. Ela é do tipo void, ou seja, não tem retorno e também não tem parâmetros de entrada e a função pinMode dentro da setup define o que será entrada e o que sera saída na nossa programação. A função serial.begin está inicializando a comunicação serial. Já a função pinMode esta definindo o pino 12 que está como “pinoSensor” como entrada, ou seja, é neste pino que o sensor atuará após receber vibrações do meio e converter em sinais elétricos e o pino 5 como saída que expressará o resultado que queremos com o código e o sensor.

void setup(){
  Serial.begin(9600);
  pinMode(pinoSensor, INPUT); //DEFINE O PINO COMO ENTRADA
  pinMode(pinoLed, OUTPUT); //DEFINE O PINO COMO SAÍDA
}

— Função Loop – Leitura do nosso sensor de vibração com arduino e Estruturas de decisão

A função loop ao contrário da setup roda tudo que estiver dentro dela varias vezes em um loop constante até que seja reiniciado ou parado o programa. Na variável “ler” será atribuído a leitura das vibrações do pino digital 5 onde esta o sensor. No monitor serial será impresso o valor atribuído a variável ler, assim saberemos se o sensor identificou uma vibração fora do comum. A função daley irá espera 150 milisegundos para  imprimir novamente o que o sensor está lendo.

void loop(){  
 ler = digitalRead(pinoSensor);// A varialvel "ler" recebe o nivel logico lido no pino do sensor de vibrações  
 Serial.println(ler);// Printa no monitor serial o valor atribuido a variavel "ler"  
 delay(150);// Espera 150 milisegundos

Já a função digitalWrite irá escrever no pino digital 12 onde está o LED (declarado anteriormente como saída), nível logico alto caso a condição no if seja verdadeira, ou seja, a variável ler ter recebido nive logico alto, assim o led irá acender indicando que o sensor identificou uma vibração incomum. Se a condição do if for falsa será executado o que estiver dentro dos colchetes do else, ou seja, o led irá apagar.

  if(ler == HIGH){ //SE A LEITURA DO PINO FOR IGUAL A LOW, FAZ    
   digitalWrite(pinoLed, HIGH); //ACENDE O LED  
 }else//SENÃO, FAZ 
  { digitalWrite(pinoLed, LOW); //APAGA O LED 
 } 
}

 

Hardware

Elemento de vibração do sensor:

É um cilindro com uma esfera metálica em seu interior e no momento em que o sensor detectar vibração, a esfera se movimentará desfazando o contato com os terminais do sensor, assim sabemos que detectou vibração fora do comum.

Considerações finais:

Neste tutorial mostramos como funciona e como utilizar o sensor de vibrações. Veja também o tutorial “SENSOR DE SOM COM ARDUINO: ACENDENDO UMA LÂMPADA” em nosso portal. Esperamos que você continue nos acompanhando e sinta-se à vontade para nos dar sugestões, críticas ou elogios. Lembre-se de deixar suas dúvidas nos comentários abaixo.