Alarme com o sensor de vibração SW18010P

Alarme com o sensor de vibração SW18010P

Componente recomendado para alarmes, sensores de presença e brinquedos, entre outros, o módulo Sensor de Vibração SW18010P é uma placa composta pelo sensor de vibração SW18010P propriamente dito, um chip comparador de tensão LM393, e um potenciômetro para ajuste da sensibilidade do módulo.

Sensor de Vibração SW18010P

Possui também em sua estrutura dois leds: um verde, indicando que o módulo está ligado (tensão de operação de 3.3 à 5 volts), e outro vermelho, que acende quando há mudança de estado da saída digital (pino D0).

Na ausência de vibração, a saída digital se mantém em estado alto (HIGH). Da mesma forma, a saída analógica A0 mantém o seu valor máximo, variando a tensão conforme a movimentação do sensor.

Sua estrutura e funcionamento permitem que o módulo seja conectado diretamente a um microcontrolador como o Arduino, onde podemos verificar tanto o estado da saída digital D0 como da analógica A0, observando essa variação de valores no Serial Monitor.

Como sugestão de utilização, vamos utilizar este sensor de vibração para acionar um buzzer  quando for detectada vibração, manter o buzzer ativo por 5 segundos, e depois deixar o módulo novamente em estado de espera.

Esse princípio pode ser usado para criar um alarme e acionar, por exemplo, relés, lâmpadas ou sistemas de som, tudo vai depender da sua criatividade na utilização das saídas do Arduino ou qualquer outro microcontrolador que você estiver usando.

Circuito Sensor de Vibração e Buzzer

Observe no programa que estamos lendo os valores das saídas A0 e D0 do módulo, e mostrando esses valores no serial monitor.

Para acionamento da porta 4, onde se encontra o buzzer, o programa verifica se o valor da saída D0 é diferente de 1 (1 = sem vibração) e, caso positivo, aciona a porta 4 por 5 segundos, retornando depois ao loop do programa e aguardando o próximo acionamento :

//Programa : Sensor de vibração com buzzer
//Autor : FILIPEFLOP

//Pino ligado a porta A0 do sensor
int porta_a0 = A0;
//Pino ligado a porta D0 do sensor
int porta_D0 = 2;
int leitura_porta_analogica = 0;
int leitura_porta_digital = 0;
//Pino ligado ao buzzer
int pinobuzzer = 4;

void setup()
{
  pinMode(porta_a0, INPUT);
  pinMode(porta_D0, INPUT);
  pinMode(pinobuzzer, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  //Leitura dos dados das portas do sensor
  leitura_porta_analogica = analogRead(porta_a0);
  leitura_porta_digital = digitalRead(porta_D0);
  //Mostra os valores no serial monitor
  Serial.print("Porta Digital : ");
  Serial.print(leitura_porta_digital);
  Serial.print(" Porta Analogica : ");
  Serial.println(leitura_porta_analogica);

  //Testa se o sensor foi acionado e liga o buzzer
  if (leitura_porta_digital != 1)
  {
    digitalWrite(pinobuzzer, HIGH);
    delay(5000);
    digitalWrite(pinobuzzer, LOW);
  }
  delay(100);
}

O ajuste da sensibilidade do módulo é feito girando o potenciômetro para a esquerda (diminui a sensibilidade), ou para a direita (aumenta a sensibilidade).

Gostou ? Conte-nos sua experiência com este post e visite nossa loja FILIPEFLOP !

15
Alarme com o sensor de vibração SW18010P
5 votos, 5.00 classificação média (100% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

24 Comentários

  1. ronan - 20 de agosto de 2016

    O sensor de inclinação SW520D funcioná a uma distância de 500 metros do Arduino Uno?

  2. Marina - 20 de junho de 2016

    Olá, tudo bem?
    Gostaria de saber como eu posso arrumar um ploblema, pois quando eu coloco essa parte do codigo:
    //Testa se o sensor foi acionado e liga o buzzer
    if (leitura_porta_digital != 1)

    Aparece a seguinte mensagem : exit status 1
    expected unqualified-id before ‘if’
    Como posso resolver isso? Grato

  3. Marina - 20 de junho de 2016

    Olá, tudo bem?
    Gostaria de saber como eu posso arrumar um ploblema, pois quando eu coloco essa parte do codigo:
    //Testa se o sensor foi acionado e liga o buzzer
    if (leitura_porta_digital != 1)
    {
    digitalWrite(pinobuzzer, HIGH);
    delay(5000);
    digitalWrite(pinobuzzer, LOW);
    }
    delay(100);
    }

    Aparece a seguinte mensagem : exit status 1
    expected unqualified-id before ‘if’
    Como posso resolver isso? Grato

  4. Marina - 20 de junho de 2016

    Olá, tudo bem?
    Gostaria de saber como eu posso resolver um ploblema, pois quando eu coloco essa parte do codigo:
    //Testa se o sensor foi acionado e liga o buzzer
    if (leitura_porta_digital != 1)
    {
    digitalWrite(pinobuzzer, HIGH);
    delay(5000);
    digitalWrite(pinobuzzer, LOW);
    }
    delay(100);
    }

    Aparece a seguinte mensagem : exit status 1
    expected unqualified-id before ‘if’
    Como posso resolver isso? Grato

  5. Kelvyn Emerick - 31 de maio de 2016

    Olá,
    Utilizei o mesmo código no mesmo sensor, mas infelizmente n funciona, a diferença e que eu estou utilizando um shield com buzzer , isso pode afetar no código?

  6. Renato - 17 de outubro de 2015

    Obrigado por me ajudar a entender, realmente me foi útil.

  7. Leonardo Ferreira Dias - 30 de setembro de 2015

    Olá , consigo medir a vibração de rolamentos de motores de corrente continua usando este modulo???

  8. Wemerson Matheus - 18 de junho de 2015

    Boa Noite Felipe o meu sensor só possui 3 saídas e não 4, não está dando certo;

    • FILIPEFLOP - 25 de junho de 2015

      Bom dia,

      Ele tem apenas saída digital ou apenas saída analógica ? Deve funcionar do mesmo jeito, você apenas vai ter as informações do tipo de saída do seu módulo.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  9. Eduardo Pinheiro - 27 de abril de 2015

    Estou querendo medir vibração de Coolers, sabe me dizer se este sensor consegue medir a vibração gerada pela rotação do cooler? A saída analógica varia bastante ou precisa de vibrações fortes?

    Obrigado

  10. Lucas - 21 de novembro de 2014

    Qual a unidade da escala de vibração que ele retorna ? Estou montando ele junto a um display para mostrar o valor da vibração , gostaria de saber a unidade que interpreta essa vibração para que eu possa converter em frequência.

  11. Anderson - 29 de setembro de 2014

    Bom dia,
    Comprei um módulo deste, mas não consegui entender muito bem a escala que ele trabalho no analógico.
    Estou querendo fazer um programa que me mostre a escala de vibração em %.
    Pelo que percebi o 0% fica em 1023 e o 100% um número bem mais baixo que esse, é isso mesmo?

    Abraços

  12. Thadeu Munhóz Cesário - 3 de julho de 2014

    Muito Interessante, quando o sensor de vibração SW18010P estará disponível novamente para compra ?

  13. julio - 1 de junho de 2014

    Posso usar ele para substituir o piezzo eletronico ?

Deixe uma resposta