Projeto 96 - Acender e apagar um led batendo palmas (contador de palmas)

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.

PAÓ O paó... - Abassa da Dama da Noite e Cabocla Indaia | Facebook

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 Resultado de imagem para protoboard 830v

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

×

Infomações do site / SEO








×

Adicionar Marcadores