Manual
do
Maker
.
com
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.
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:
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.
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:
Para exemplificar a ligação do LED sem ter que abrir o Fritzing:
GND------330R-----LED------P6
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.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.