Sensor de som Ky-038 com Arduino

 

SENSOR DE SOM KY-038 COM ARDUINO

 

 

O que vem a ser um sensor de som?

Os sensores de som basicamente são responsáveis por detectar e interpretar o quão alto é um som em um determinado ambiente. Se torna muito interessante para diversos projetos embarcados onde se queira fazer a implementação de tais caracteríticas de controle ou identificação. No mercado existe uma grande variedade desses sensores, neste artigo trataremos especificamente do módulo sensor de som Ky-038. Aprenderemos suas características principais, pinagens, recursos e como fazer a integração com o Arduino. Veremos ainda como criar um projeto de detecção de som com o arduino e o módulo de som, no qual um som de palmas alternará o estado de uma lâmpada.

 

Primeiro de tudo iremos falar um pouco sobre o módulo sensor de som KY-038.

 

Módulo Sensor de Som KY-038

O módulo sensor de som KY-038 consiste em um microfone sensível à capacitância por volta de 50Hz-10kHz e um circuito de amplificação.

Basicamente o módulo converte ondas sonoras em sinais elétricos detectando o som com a ajuda de um microfone. Em seguida este som é enviando para um circuito de processamento que consiste em um amplificador operacional LM393. Para definir o nível de som um potenciômetro de ajuste é utilizado, após a definição, a saída do módulo sensor de som pode ser facilmente controlada. Da mesma forma, a saída deste sensor pode ser verificada conectando um LED ou qualquer outro dispositivo nos pinos de saída.

Existem dois tipos de saídas acessíveis a partir deste sensor, tanto uma saída digital quanto uma saída analógica.

 A saída digital é obtida quando o som está em um determinado valor de limiar. Para ajustar a sensibilidade do pino de saída digital do módulo é utilizado o potenciômetro. Quando um determinado som for mais alto ou mais baixo do que o nível de limiar, a saída digital assumirá nível lógico 1 ou 0 conforme desejado na programação.

Já a saída analógica interpreta o sinal proveniente do microfone como um nível de tensão que muda conforme a intensidade do som.

 

Pinagem do módulo

O módulo do sensor de som consiste em quatro pinos A0, VCC, GND e D0.

 

 

 O pino A0 é usado para saída analógica, o pino D0 é usado para saída digital. Já o pino VCC é usado para fornecer tensão de alimentação ao módulo (5VCC) e o pino GND é usado para aterramento do módulo.

 

Especificações Principais

 - Modelo: KY-038

 - Comparador LM393

 - Tensão de operação: 4-6 V

 - Frequência: 50Hz-10kHz

 - Potenciômetro para ajuste de sensibilidade

 - Saída Digital

 - Saída Analógico

 - Led indicador de alimentação

 - Led indicador para saída digital

 

Como utilizar o módulo sensor de som ky-038 com o Arduino Uno ?

Para utilizar o módulo sensor de som (Ky-038) com o arduino iremos demonstrar o funcionamento através dos projetos a seguir.

O primeiro projeto será utilizado para calibração do sensor e posteriormente adicionaremos um LED de saída para a segunda demonstração.

 O objetivo principal é o acionamento do circuito ao bater palmas. Este projeto pode ser implementado para o acionamento de lâmpadas AC por exemplo.

 

Materiais para montagem:

 - Arduino Uno

 - Módulo Sensor de Som (KY-038)

 - Fios de conexão

 

Inicialmente deve-se efetuar as conexões entre os dispositivos conforme indicado no esquema a seguir:

 

Deve-se conectar os 3 pinos do módulo sensor de som KY-038 com o Arduino.

O VCC do sensor deve ser conectado aos 5V do Arduino.

O GND do sensor deve ser conectado ao GND do arduino

E por fim, o pino D0 do sensor deve ser conectado no pino digital 8 do Arduino.

 

Calibrando o módulo do sensor de som

Abra a IDE do Arduino e copie o respectivo código abaixo, este código será de grande importância no processo de calibração do nosso módulo sensor de som.

 

 

Funcionamento do código

 

 

Primeiramente vamos definir como D0 o pino digital 8 ao qual conectamos  a saída digital (DO) do sensor de som.  Em seguida, para monitorar os sons das palmas, criaremos uma variável para armazenar o ‘ultimo_evento’. Desta forma será armazenado o tempo desde que o último som de palmas foi detectado.

 

 

Dentro da função setup() abriremos a comunicação serial a uma taxa de transmissão de 115200. Além disso, configuraremos o sinal D0 do sensor como entrada (INPUT) do Arduino.

 

Dentro da função loop(), primeiro descobriremos o valor de saída do sensor usando digitalRead(). Este valor será armazenado na variável inteira ‘saida’

Em seguida, verificaremos se a saída do sensor é BAIXA ou não. Lembre-se de que a saída será LOW sempre que um som alto for detectado. Se a saída for realmente BAIXA e permanecer assim por mais de 25 milissegundos, então o som é de fato de uma palma.

Em seguida, o monitor serial do arduino exibirá “O som de palmas foi detectado!”

 

Demonstração

Escolha a placa e a porta COM corretas antes de enviar seu código para a placa.

Vá para Ferramentas > Placa e selecione Arduino.

Em seguida, vá para Ferramentas > Porta e selecione a porta apropriada através da qual sua placa está conectada. Clique no botão de upload para carregar o código na placa de desenvolvimento do Arduino.

No seu Arduino IDE, abra o monitor serial e defina a taxa de transmissão para 115200.

Agora bata palmas perto do microfone e observe se o monitor serial detecta palmas ou não.

Você terá que calibrar o sensor de som para detectar o som com precisão. O potenciômetro nos ajudará a calibrar o sensor. Gire o potenciômetro no sentido anti-horário para aumentar a sensibilidade do sensor e gire-o no sentido horário para diminuir sua sensibilidade. Girar o potenciômetro mudará o valor do limiar que será usado para detectar o som das palmas. Quando o som das palmas é maior que o valor limite definido, o pino de saída entra em um estado LOW.

Continue girando o potenciômetro até que o som de palmas seja detectado com precisão.

 

Controlando um LED com o som de palmas

Após a calibração do módulo sensor módulo, é hora de ir mais longe e controlar um LED com o som de palmas. Neste projeto, estamos mantendo o básico e mostrando como controlar um LED através do sensor de som, mas você também pode controlar qualquer dispositivo, por exemplo, campainha, lâmpada, etc.

Materiais para montagem:

 - Arduino Uno

 - Módulo Sensor de Som (KY-038)

 - Fios de conexão

 - LED

 - Resistor de 330 ohms

 - Protoboard

 - Fios de conexão

Siga o diagrama esquemático abaixo para conectar todos os três dispositivos corretamente.

 

 

Note que conectamos no ânodo do LED o pino 7 do arduino através de um resistor de 330 ohms. O cátodo do LED é conectado ao GND do Arduino. Além disso, alimentamos o sensor de som com 5V do Arduino e o GND do sensor ao GND do módulo. Por fim, conectamos o pino de saída digital (DO) do sensor ao pino digital 8 do Arduino.

 

Programação

Abra seu Arduino IDE e vá em Arquivo > Novo para abrir um novo arquivo. Copie o código abaixo e salve-o.

O código basicamente irá alterar o estado do LED sempre que um som de palmas for detectado.

 

 

Explicação do código

A maior parte do código é semelhante ao do primeiro esboço. No primeiro, exibimos uma mensagem no monitor serial quando o som de palmas foi detectado. A diferença é que neste  segundo projeto, vamos alternar o estado do LED.

 

Primeiro, vamos definir o DO como pino digital 8 e LED como pino digital 7.

Em seguida, definiremos a variável 'ultimo_evento' e a iniciamos com o valor 0. Também definiremos uma variável booleana que manterá o estado do LED.

 

Dentro da função setup(), vamos configurar o pino do LED como pino de saída (OUTPUT) e o pino D0 do sensor de som como pino de entrada(INPUT). Isso será feito usando a função pinMode().

 

 

Dentro da função loop infinito(), primeiro descobriremos o valor de saída do sensor usando a função digitalRead(). O valor será armazenado na variável inteira 'saída'.

 

 

Em seguida, verificaremos se a saída do sensor é BAIXA (LOW) ou não. Lembre-se de que a saída será LOW sempre que um som alto for detectado. Se a saída for realmente BAIXA e permanecer assim por mais de 25 milissegundos, então o som é de fato de uma palma. Em seguida, o estado do LED irá alternar. Se o estado era BAIXO antes do som das palmas, então se tornará ALTO e vice-versa.