fbpx

Como acionar LED batendo palmas usando o sensor KY-037 e Arduino

O sensor detector de som/palmas KY-037 é um módulo eletrônico desenvolvido para detectar ou medir a intensidade sonora de um ambiente. Este sensor possui saídas digital e analógica.

O uso de sua saída digital é recomendada quando se deseja detectar algum som, funcionando da seguinte maneira: Enquanto o sensor não detectar um sinal de som sua saída digital se manterá em nível baixo, mas ao detectar um sinal a sua saída digital será alterada para nível alto.

O uso de seu pino analógico é ideal para quando se deseja medir a variação do som, operando da seguinte maneira: Quanto maior for a amplitude do sinal sonoro identificado, maior será a tensão no pino analógico.

A placa de circuito do sensor KY-037 (Figura 1) possui três componentes principais: microfone, amplificador e comparador de tensão. O microfone é responsável por capturar o sinal sonoro e enviar um sinal analógico para o amplificador que, como o próprio nome diz, amplifica o sinal de acordo com o valor da resistência do potenciômetro e o envia o sinal para a saída analógica do módulo. O comparador de tensão compara a tensão de entrada com uma tensão de referência, a saída desta comparação será um valor analógico. Os limites de detecção do sensor KY-037 podem ser ajustados por meio do trimpot (componente azul).

Imagem real de um detector de som-palmas KY-037
Figura 1 – Sensor detector de som/palmas KY-037

Algumas características técnicas do sensor detector de som/palmas KY-037 encontra-se listadas a seguir:

  • Tipo: Sensor de som;
  • Chip: LM393;
  • Tipo de saída: Uma digital (D0) e uma analógica (AO);
  • Pinos: GND, VCC, DO e AO;
  • LED para indicar que está alimentado;
  • LED para indicar que identificou som;

A proposta deste projeto é fazer o acionamento de um LED ao bater palma. Para isso, utilizaremos o sensor detector de som/palmas KY-037 através da leitura de seu pino digital (D0).

Neste caso, o microfone atuará como um sensor de intensidade sonora e para realizar a identificação da palma vamos avaliar se o sinal lido apresenta picos de maior intensidade. Desta forma, se um som de alta frequência for identificado o LED será acionado.


MATERIAIS NECESSÁRIOS


ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES

Monte o circuito da Figura 2 utilizando a placa UNO, o sensor KY-037, o LED, o resistor e os fios.

A imagem mostrar uma ilustração de circuito do projeto para acender uma led batendo palma utilizando o sensor KY-037
Figura 2 – Circuito do projeto Acender um LED batendo palma utilizando o sensor KY-037.

Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

  • Neste projeto utilizaremos a leitura digital do sensor KY-037. Por isso, não utilizaremos seu terminal analógico (A0);
  • O segundo terminal do sensor, representado pela letra G, deve ser conectado ao GND da placa Arduino;
  • O terceiro pino do sensor, representado pelo caractere +, deve ser alimentado com o 5V da placa Arduino;
  • Por fim, o terminal nomeado D0 deve ser conectado à porta digital 8.


ELABORANDO O CÓDIGO

A proposta deste projeto é acionar um LED ao bater palma. Anterior a explicação do código de funcionamento deste projeto, vale salientar que o sensor KY-037 necessita de ajustes de sensibilidade. Então, pode ser que ao copiar o código abaixo o sistema não funcione da maneira adequada. Estes ajustes serão explicados ao fim deste tópico. O código do projeto proposto terá estrutura:

/*
  ---  ACIONAR LED BATENDO PALMAS COM KY-037     ---
  ==================================================
  == BLOG DA ROBOTICA - www.blogdarobotica.com ==
  ==================================================
  Autora: Carol Correia Viana
  E-mail: contato@blogdarobotica.com
  Facebook: facebook.com/blogdarobotica
  Instagram:@blogdarobotica
  YouTube: youtube.com/user/blogdarobotica
  ==================================================
*/

int led = 8;//Atribui o pino 8 a variável led
int ky = 9;//Atribui o pino 9 - conectado ao sensor, a variável ky
int valorky = 0;//Declara a variável valorky do tipo inteiro
bool statusLed = false;//Declara a variável statusLed do tipo booleano

void setup() {
  pinMode (led, OUTPUT);//Define led (porta digital 8) como saída
  pinMode (ky, INPUT);//Define ky (porta analógico 9) como saída
  Serial.begin(9600);//Inicialização da comunicação serial, com velocidade de comunicação de 9600
}
void loop() {
  valorky = digitalRead(ky);//Lê o valor do sensor e armazena na variável valorky
  Serial.println(valorky);//Imprime na serial os dados de valorky
  delay(20);//Intervalo de 20 milissegundos
  if (valorky == HIGH && statusLed == false) { //Se valorky for igual a 1 (HIGH) e statusLed for igual a false:
    delay(100);
    digitalWrite(led, HIGH);//Coloca led em alto para acioná-lo
    statusLed = true;//Coloca statusLed como true
  }
  else {//Senão:
    if (valorky == HIGH && statusLed == true) { //Se valorky for igual a 1 (HIGH) e statusLed for igual a true
      delay(100);
      digitalWrite(led, LOW);//Coloca led em baixo para desligá-lo
      statusLed = false;//Retorna statusLed como false
    }
  }
}

Com o código transferido o Arduino, vamos ajustar a sensibilidade do sensor KY-037. Este ajuste é feito girando o pino do trimpot de modo que sua sensibilidade seja reduzida e o sensor apenas detecte sinais de maior intensidade, como o da palma. Podemos observar o resultado deste ajuste a partir do LED2, que deve ser acionado apenas quando houver um sinal sonoro como o da palma. A Figura 3 ilustra a forma de reduzir e aumentar a sensibilidade do sensor KY-037.

A imagem mostra na pratica como é que se reduz e aumenta a sensibilidade de um sensor KY-037
Figura 3– Forma de ajuste da sensibilidade do sensor KY-037.

Espero ter ajudado,

Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!

Att. Carol Correia Viana

Dúvidas? Deixe seu comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.