Magos do Arduino

Módulo KY-038 detector de som

Aprenda a utilizar o módulo KY-038 detector de som com o Arduino

Magos do Arduino

Módulo KY-038 detector de som

O KY-038 é um sensor que permite detectar som através de um microfone.

KY-038

Este microfone é simples, e não deve ser usado para capturar voz, somente sons.

Ele possui saídas para leituras digitais e analógicas.

Um potenciômetro na placa permite ajuste da sensibilidade de detecção.

Ele pode ser utilizado como entrada para controlar outros dispositivos, como acender uma luz quando uma palma for detectada.

Módulo KY-038 detector de som

Neste projeto você criará um circuito que faz o uso um módulo KY-038 detector de som com o Arduino.

Para a criação deste circuito serão necessários os seguintes componentes:

  • 1x breadboard
  • 1x Arduino UNO
  • 1x Fotoresistor
  • 1x Resistor de 10k
  • Jumpers

Circuito Módulo KY-038 detector de som

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito Módulo KY-038 detector de som

Schematics Módulo KY-038 detector de som

A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.

Schematics Módulo KY-038 detector de som

Código fonte para o circuito do Módulo KY-038 detector de som

Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.

/**
* Código do curso Magos do Arduino para utilizar um módulo detector de som (KY-038) 
* com o Arduino que quando acionado acende um LED.
*
* (c) Copyright KazaleIT
* @kazaleitoficial no YouTube
**/

#define PINO_MIC_A A0
#define PINO_MIC_D 2
#define PINO_LED 8

void setup() {
    pinMode(PINO_MIC_D, INPUT);
    pinMode(PINO_LED, OUTPUT);
    Serial.begin(9600);
}

void loop() {
    // teste com a leitura digital
    //testeLeituraDigital();

    // teste com a leitura analógica
    testeLeituraAnalogica();

    delay(10);
}

void testeLeituraDigital() {
    int micDigital = digitalRead(PINO_MIC_D);
    Serial.print("Leitura mic digital: ");
    Serial.println(micDigital);
    if (micDigital == 1) {
    digitalWrite(PINO_LED, HIGH);
    delay(1500);
    digitalWrite(PINO_LED, LOW);
    }
}

void testeLeituraAnalogica() {
    int micAnalogico = analogRead(PINO_MIC_A);
    Serial.print("Leitura mic analógico: ");
    Serial.println(micAnalogico);
    if (micAnalogico > 600) { // ajuste a sensibilidade aqui (0-1023)
    digitalWrite(PINO_LED, HIGH);
    delay(1500);
    digitalWrite(PINO_LED, LOW);
    }
}