Um dos componentes mais simples de usar e também de entender é o sensor de vibração. Esse sensor pode ser usado em alarmes de carro ou até para criar uma porta que abre a partir de um código de batidas.


O que é?

Existem diversos sensores, desse tipo, disponíveis para comprar, mas no geral eles fazem a mesma coisa. São capazes de sentir vibrações ou perturbações no objeto ao qual ele está fixado/conectado.

sensor de vibração

 

Essas vibrações podem ser medidas analogicamente. Alguns modelos podem vir soldados em um módulo que possui 3 pinos. E, basicamente, o pino D0 (normalmente) manda um sinal de nível alto (5v) caso a vibração medida for maior do que o valor configurado em um potenciômetro do módulo. Neste caso, não é possível ler os valores de forma analógica.


Circuito

Sem o módulo

O circuito é extremamente simples. Basta ligar ele de um lado na alimentação (GND ou 5v) e do outro em um pino analógico.

circuito sensor de vibração

 

Aquilo no circuito é um capacitor, mas, como ele é parecido, eu usei  pra simbolizar o sensor de vibração.

Se você ligar uma ponta dele no GND, você lerá constantemente valores próximos de 0 caso não existam vibrações, e acima disso caso existam. E se você ligar no 5v, os valores constantes serão de 1023 (5v convertido) e caso haja alguma perturbação, a leitura será de valores abaixo de 1023.

Com o módulo

Também é bem simples usar o módulo. Ligue o Vcc no 5v, o GND no GND e o D0 em algum pino digital.


Programação

Sem o módulo

Em síntese, você precisa ler os valores que chegam na porta analógica e pra isso é só usar o comando analogRead(pino). Aprenda como fazer leituras analógicas neste post. E com esses valores é só testar o comportamento do sensor e desenvolver alguma coisa criativa. O código abaixo lê o valor do sensor e imprime no Serial.

1
2
3
4
5
6
7
8
9
10
11
int sensor = A0; //pino do sensor

void setup() {
  Serial.begin(9600);
}

void loop() {
  int valor = analogRead(sensor); //Variavel pra armazenar o valor do sensor
  Serial.println(valor); //Escreve o valor do sensor
  delay(100);
}

Recomendo que você vá, no topo do programa do Arduino, em “Ferramentas” (Ou Tools) -> “Plotter Serial” e observe a leitura do sensor por lá, porque o plotter serial te ajuda a ter uma visão melhor do que está acontecendo.

Com o módulo

Você precisa ler o valor que chega ao pino digital. Pra isso recomendo esse post. E pra configurar o valor de referência do modulo é só girar o potenciômetro que fica nele até que sua leitura dê o valor desejado.


Aplicações e Ideias

Com base nos dados lidos pelo sensor, é possível criar algumas coisas interessantes. Por exemplo, você pode:

  • Colocar o sensor no seu bolso e fazer um contador de passo
    • Vai ser preciso analisar o que acontece com os valores quando você der um passo e com isso criar um padrão pra sua contagem.
  • Fazer um alarme pra moto
    • Se houver alguma vibração, o alarme é disparado.
  • Uma senha secreta para portas
    • Criar um padrão de toques e usar o sensor pra identificar esses toques e abrir uma porta.
  • Detectar se alguém:
    • Mexeu em algum objeto.
    • Abriu uma porta
    • Bateu na porta
  • Entre outras aplicações que você pensar