Manual

do

Maker

.

com

Módulo sensor de vibração com Arduino, ESP8266, Digispark etc.

Módulo sensor de vibração com Arduino, ESP8266, Digispark etc.

Recentemente escrevi um artigo sobre o sensor de inclinação, que percebe movimento com inclinação entre 15 e 45 graus, gerando uma interrupção no evento. Nesse artigo mostrarei seu parceiro, o sensor de vibração, útil também para fazer alarmes, entre outros.

Sensor de vibração

O sensor de vibração funciona de forma bastante similar ao sensor de tilt, mas a diferença é que dentro do encapsulamento metálico está contido um tipo de mola altamente sensível que vibra com a perturbação do ambiente. Quando isso acontece, essa mola toca as paredes do encapsulamento fechando um circuito e gerando interrupção. Isto é, você terá uma saída digital do evento e essa saída pode ter sua sensibilidade controlada através do trimpot contido no módulo. Como a vibração gerará ondas no vibrar da mola, você pode receber uma série de interrupções e considerando o tempo (µs) você pode mensurar a força dessa vibração para gerar gráficos ou alarmes. Para mostrar como é a reação do sensor, fiz um video com o módulo sem nenhuma MCU, mandando o sinal de saída diretamente para um LED. Veja o video:

https://youtu.be/LWAqXpkfSXo

Materiais

Você vai precisar de:

No caso do cabo USB, recomendo como fiz nesse artigo, mas também recomendo a leitura desse outro sobre alimentação.

Se você for utilizar uma MCU qualquer você pode utilizar jumpers fêmea-fêmea, mas se for utilizar protoboard certamente utilizará macho-fêmea.

Wiring

Nada mais fácil que isso, a única vantagem em utilizar uma MCU é para poder reagir ao evento, mas não tem segredo em fazer a leitura do evento. O wiring pode ser feito de uma maneira muito simples:

  • ligue o 5V do Arduino ao VCC do sensor de vibração
  • ligue o GND do Arduino ao GND do sensor de vibração
  • ligue o pino 2 do Arduino ao DO do sensor de vibração
  • ligue o LED  ao pino 6 do Arduino (não esqueça o resistor) e ligue a outra perna do LED ao GND.

Para exemplificar a ligação do LED sem ter que abrir o Fritzing:

GND------330R-----LED------P6

Código

Já que é tão simples, para ficar um pouco mais divertido utilizaremos interrupção. No caso do Arduino UNO, os pinos de interrupção são o 2 e o 3. Utilizaremos o 2. Se for utilizar outro Arduino, procure pelo pinout dele. Para saber detalhes sobre interrupção e timer com Arduino, leia esse artigo, garanto que vai gostar.

boolean ON_OFF = 0;
void changeState(){
    ON_OFF = !ON_OFF;
}

void setup(){
    Serial.begin(9600);
    pinMode(6,OUTPUT);
    interrupts();
    attachInterrupt(digitalPinToInterrupt(2), changeState, RISING);
}

void loop(){
    digitalWrite(6,ON_OFF);
    delay(1);
    ON_OFF = 0;
}

É isso, simples assim.

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.