Aqui no blog eu já tive a oportunidade de testar um sensor de som com microfone, e hoje vou testar o módulo Sensor de Som KY-038 com Arduino, um módulo muito parecido com o anterior.
Vamos dar uma olhada nesse módulo.
O módulo sensor de som KY-038
O sensor de som KY-038 com microfone é uma versão mais atualizada do módulo, agora com o chip LM393. O princípio de funcionamento é simples: ao detectar som, o microfone varia a tensão na saída analógica A0, e também aciona a saída digital D0conforme a regulagem do potenciômetro presente no módulo.
A alimentação do módulo vai de 4 à 6VDC, e ele possui dois leds indicadores: um que mostra se o módulo está ligado, e o outro que acende quando a saída digital estiver en nível alto (HIGH).
Conexão do módulo sensor de som KY-038 ao Arduino
Para testar o módulo sensor de som vamos utilizar um circuito com 3 leds, que vão acender conforme a intensidade do som. Conforme o som captado pelo microfone, serão acesos primeiro o verde (baixa intensidade), depois o amarelo (intensidade média), e por fim o vermelho (intensidade alta).
Os resistores são usados para limitar a corrente sobre os leds, e no nosso circuito usamos 3 resistores de 330 ohms.
Programa medidor de intensidade de som
No nosso programa vamos utilizar o sinal da entrada analógica A5 do Arduino (ligado ao pino A0 do módulo). Quando o pino A0 for acionado, os leds correspondentes serão acesos.
Vamos ler o valor dessa entrada (que estará entre 0 e 1023), e testar, com três comandos IF (linhas 37, 44 e 51), qual é o nível de sinal que foi detectado pelo microfone.
//Programa: Sensor de som KY-038 //Autor: Arduino e Cia //Definicao pinos leds int pinoled_ver = 3; int pinoled_ama = 4; int pinoled_verm = 5; //Definicao pinos sensor int pino_analogico = A5; int pino_digital = 7; int valor_A0 = 0; int valor_D = 0; void setup() { Serial.begin(9600); //Define pinos led como saida pinMode(pinoled_ver, OUTPUT); pinMode(pinoled_ama, OUTPUT); pinMode(pinoled_verm, OUTPUT); //Define pinos sensor como entrada pinMode(pino_analogico, INPUT); pinMode(pino_digital, INPUT); } void loop() { valor_A0 = analogRead(pino_analogico); valor_D = digitalRead(pino_digital); Serial.print("Saida A0: "); Serial.print(valor_A0); Serial.print(" Saida D0: "); Serial.println(valor_D); //Intensidade baixa if (valor_A0 > 20 && valor_A0 < 300) { digitalWrite(pinoled_ver, HIGH); digitalWrite(pinoled_ama, LOW); digitalWrite(pinoled_verm, LOW); } //Intensidade media if (valor_A0 > 301 && valor_A0 < 700) { digitalWrite(pinoled_ver, HIGH); digitalWrite(pinoled_ama, HIGH); digitalWrite(pinoled_verm, LOW); } //Intensidade alta if (valor_A0 > 701) { digitalWrite(pinoled_ver, HIGH); digitalWrite(pinoled_ama, HIGH); digitalWrite(pinoled_verm, HIGH); } delay(50); //Apaga todos os leds digitalWrite(pinoled_ver, LOW); digitalWrite(pinoled_ama, LOW); digitalWrite(pinoled_verm, LOW); }
Os valores também são mostrados no serial monitor, e você pode usar essa informação para verificar se o módulo está funcionando corretamente:
No serial monitor também é mostrado o valor da porta 7, onde está ligada a saída digital (D0). Configure a sensibilidade ajustando o potenciômetro do módulo.
Gostou do post do sensor de som KY-038 com Arduino? Confira outros posts com módulos para Arduino aqui mesmo no blog!