Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 96 - Acender e apagar um led batendo palmas (contador de palmas)
Projeto 96 - Acender e apagar um led batendo palmas (contador de palmas)
Angelo Luis Ferreira | 08/06/2021
Acessos: 16.707
Básico - Projeto 96
Acender e apagar um led batendo 2 palmas consecutivas
Objetivo
O objetivo deste projeto é criar um circuito para acender e apagar um led ao bater seguidamente um número específico de palmas. No nosso exemplo o led se acenderá ao batermos 2 palmas consecutivas e se apagará também com 2 palmas consecutivas. Para isso, vamos utilizar um módulo sensor de som capaz de captar ruídos e transformá-los em sinais. O Arduino ao receber esses sinais, em conjunto com outros componentes, poderá acionar leds, motores, lâmpadas ou qualquer outro tipo de carga eletrônica. No projeto utilizamos o módulo KY-038, mas o resultado deverá ser semelhante para qualquer outro tipo de módulo sensor de som.

Definições
Módulo sensor de som: Módulo eletrônico composto principalmente por um chip comparador de tensão, um potenciômetro (trimpot) e um microfone. O sensor deverá identificar a presença e a intensidade do som em um determinado ambiente, variando o estado de sua saída digital ao detectar o som (LOW para HIGH) e ainda detectar a intensidade do som ao usar uma saída analógica. O limite de detecção de saída digital pode ser ajustado pelo potenciômetro (trimpot) que regulará, caso necessário, o nível de sinal sonoro necessário para alterar o estado da saída digital. Veja na ilustração abaixo os principais elementos que compõem um sensor de som, no caso o módulo KY038. Saiba mais sobre módulo sensor de som em Sound Sensor Tutorial for Arduino, ESP8266 and ESP32.

Conforme a imagem acima, temos:
Microfone (condensador elétrico): Utilizado para captar o som, identificando a vibração das ondas no ambiente;
Trimpot: Potenciômetro utilizado para ajustar a sensibilidade do microfone;
Led de Alimentação: Indica se o sensor está sendo alimentado, acendendo sua luz;
Led de Saída Digital: Indica se a saída digital está sendo acionada, acendendo sua luz;
Pinagem do módulo KY038
GND: Terra;
D0: Saída Digital, retorna HIGH ou LOW;
A0: Saída Analógica, retorna o valor da intensidade do som captado;
Vcc: Tensão de entrada entre 3.3 e 5Vcc.
Atenção: A inversão na alimentação pode ocasionar a queima do módulo.
Exemplo de módulos mercado: Abaixo temos os dois tipos mais comuns de módulos de som. A diferença entre eles é apenas nos pinos de saída. O módulo à esquerda tem duas saídas: 1 saída digital D0 e 1 saída analógica A0, já o módulo à direita tem apenas um saída que pode ser digital ou analógica, dependendo da conexão com o Arduino.

Aplicação
Para fins didáticos e projetos para alarmes, automação residencial e segurança.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
 |
No mínimo utilizar protoboard com 400 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
 |
|
Módulo Sensor de Som |
Módulo Sensor de Som KY-038
|
1 |
 |
– Modelo: KY-038 ou KY-037 – Chip comparador de sinal LM393 – Tensão de Operação: 3.3-5v DC – Sensibilidade ajustável via potenciômetro – Saída Digital e Analógica – Corrente elétrica – Led indicador para tensão – Led indicador para saída digital
(datasheet)
Obs.: Você poderá utilizar outros tipos de sensores de som que possuem saída digital.
|
Led difuso 5mm |
Led 5mm |
1 |
 |
Utilizar led de qualquer cor |
Resistor |
Resistor de 150 Ω ou maior |
1 |
 |
Se precisar usar outros valores, calcule o resistor apropriado para o led ou barra grafica utilizada |
Arduino UNO R3 |
Arduino UNO |
1 |
 |
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da energia enquanto você monta o circuito.

Atenção
1. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.

2. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Leds ligados em série e em paralelo.
Obs.: Resistores superiores a 150 Ω poderão ser utilizados em LEDs de todas as cores para um circuito com tensão igual ou inferior a 5V.
2.1. Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω
3. Para a montagem do módulo sensor de som, vamos utilizar a saída digital para acionar o led quando o sensor detectar um som. Vamos utilizar também a saída analógica, de forma opcional, para verificarmos o valor lido no sensor, servindo como parâmetro para a calibragem do microfone, caso haja necessidade.
3.1. Se o seu módulo sensor de som possuir 3 pinos, utilize apenas o pino de saída para a conexão digital do Arduino. Faça a calibragem, se necessário, sem a leitura do sensor.
3.1.2. Veja a montagem do nosso exemplo.

A inversão na alimentação pode ocasionar a queima do módulo.
4. A montagem do nosso exemplo foi realizada em um protoboard com 400 pontos:

Código do Projeto (Sketch)
1. Faça o download e abra o arquivo projeto96.ino no IDE do Arduino: DOWNLOAD - projeto96.ino
2. Se preferir, copie e cole o código abaixo no IDE do Arduino:
/*******************************************************************************
Projeto 96 - Acendendo led com módulo sensor de som (conta palmas)
Criado por: Angelo Luis Ferreira
Data: 13/04/2021
http://squids.com.br/arduino
*******************************************************************************/
int microfone = 12; // Pino digital ligado ao sensor de som (DO)
int led = 8; // Pino ligado ao LED
int contPalmas = 0; // Contador de Palmas
int palmasRequeridaLigaLed = 2; // Contagem para acender o LED
int palmasRequeridaDesligaLed = 2; // Contagem para apagar o LED
// Tempo máximo entre o pulso seguinte
unsigned long tempMaxSom = 500;
unsigned long tempMinSom = 300;
unsigned long compriSonoro = 100; // Comprimento do som esperado
unsigned long time;
unsigned long startTime = 0;
void setup() {
pinMode(microfone, INPUT); // Inicia o pino do microfone como entrada
pinMode(led, OUTPUT); // Inicia os pino do LED como saída
// Desliga LED (o LED é invertido HIGH = desliga / LOW = liga)
digitalWrite(led, LOW);
}
void loop() {
// Inicia a contagem de tempo
time = millis();
// Verifica o tempo entre o pulso inicial e o seguinte
unsigned long tempoAposPalma = time - startTime;
if (tempoAposPalma >= compriSonoro && digitalRead(microfone) == HIGH) {
// Verifica se o pulso recebido respeita o intervalo entre 1 pulso e outro
if (tempoAposPalma < tempMinSom || tempoAposPalma > tempMaxSom) {
// Caso contrario o intervalo resetara a contagem e o tempo
contPalmas = 0;
startTime = millis();
}
else {
// Iniciada a contagem de pulso e o tempo
contPalmas ++;
startTime = millis();
}
// Verifica se a contagem de palma é igual ou superior ao número...
//esperado e se o LED esta ligado
if((contPalmas>=palmasRequeridaDesligaLed-1)&&(digitalRead(led)==HIGH)){
// Desliga o LED e zera a contagem
digitalWrite(led, LOW);
contPalmas = 0;
}
// Verifica se a contagem de palma é igual ou superior ao número...
//esperado e se o LED esta desligado
if((contPalmas>=palmasRequeridaLigaLed-1)&&(digitalRead(led)==LOW)){
// Acende o LED e zera contagem
digitalWrite(led, HIGH);
contPalmas = 0;
}
}
}
Vídeo
Como o projeto deve funcionar
1. Ao rodar o programa o led permanecerá apagado.
2. Ao bater palmas (2 vezes consecutivas) , o led acenderá.
3. Para apagá-lo, basta bater palmas (2 vezes consecutivas) novamente.
4. Para alterar o número de vezes para bater palmas, tanto para acender como para apagar o led, altere as linhas 13 e 14 do programa com os valores desejados. Recomendo não utilizar valores maiores que 5.

5. Se o led não acender ou apagar nas condições acima, será necessário ajustar a sensibilidade do microfone do sensor. Isto deverá ser feito por meio de um potenciômetro (trimpot) presente no sensor de som. A seguir, veja como fazer a calibragem do sensor.
Como ajustar a sensibilidade do sensor
5. Muitas vezes ao adquirir um módulo sensor de som, o mesmo não está adequadamente calibrado para este tipo de projeto. Para isso, precisamos fazer um ajuste na sensibilidade do microfone, girando o parafuso do potenciômetro no sentido horário ou anti-horário. Veja abaixo como fazer esse ajuste:
5.1. Gire o potenciômetro até que o LED acenda.
5.2. Gire o potenciômetro lentamente na direção contrária até que o LED se apague.
5.3. Neste caso, a saída digital D0 é LOW.
5.4. Agora bata 2 palmas ao lado do módulo sensor de som do microfone.
5.5. O LED deve acender por um som ativo.
5.6. Se não resolver, leia o tutorial Projeto 95 - Usando o sensor de som para acender e apagar um led - Arduino
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários