Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

1.9. Projeto detecta Som com KY-038 e acende Leds


Detector de Som com sensor KY-038

O projeto utiliza placa Arduino Uno, Sensor de Som KY-038, Leds, Resistores de 150Ω, Protoboard e Jumpers.


/* 
Projeto: Pisca Leds conforme intensidade de som identificado pelo módulo Sensor KY-038
Autor: André Silveira
Data: 03/10/2021 
*/

const byte pinLeds[] = {7,8,9,10,11,12};      // Saídas digitais 07 a 12 do Arduino
const byte pinSensor = A0;                          // Entrada analógica A0 do Arduino Sensor de Som KY-038

const byte nLeds = 6;                                  // Constante que define a quantidade de leds
const int calibragem = 816;                         // Altere valor para seu projeto  
int incremento = 1;                                     // Variável com o valor de incremento em função de leds
unsigned long anterior = 0;                         // Variável para o temporizador (calibragem)

void setup() {

   Serial.begin(9600);
   for (byte i=0;i<nLeds;i++) {
         pinMode(pinLeds[i], OUTPUT);           // Inicializa Leds    
         pinMode(pinSensor, INPUT);              // Inicializa Sensor de Som KY-038
   }
   
}

void loop() {           
  
  // ---- Le Módulo Sensor de Som KY-038 e identifica intensidade emitida   

  int sound = analogRead(pinSensor);           // Lê intensidade sonora detectada pelo sensor de som
  int limite = calibragem;                             // Define o limite para acionar o led 
  for (byte i=0;i<nLeds;i++) {      
       // sound > limite ? digitalWrite(pinLeds[i],HIGH) : digitalWrite(pinLeds[i],LOW);
	   if (sound > limite) {          
	       digitalWrite(pinLeds[i],HIGH);
	   }
	   digitalWrite(pinLeds[i],LOW);
	   limite += incremento;
   }   
   
   // ---- Exibe valores na serial a cada 500 milisegundos
  
  unsigned long atual = millis();               // Define variável atual do temporizador
  if (atual - anterior > 500) {
     Serial.print(analogRead(pinSensor));
     Serial.print(" | Limite: ");
     Serial.println(calibragem);
     anterior = atual;
  }

  delay(1);    
                                
}

 

[Voltar]

[Avançar]