Sonómetro con reproductor Micro-sd

Buen día a todo aquel que lea esto, estoy haciendo un proyecto que simule un sistema de sonorización el cual usa un sonómetro para medir los decibeles un micrófono que graba y reproduce voz (el isd1820) y un lector de tarjeta micro sd. Pude compilar un código que hace funcionar el sonómetro y el reproductor pero tengo un problema, por separado estos funcionan sin problemas pero al unir el código, el sonómetro no muestra valores a no ser que presione el botón que sirve para pausar/reproducir la música de la sd. Como podría hacer para que el sonómetro siga captando sonido de manera continua y que el reproductor no afecte a esta?
Este es el código:

#include <SD.h> // need to include the SD library
#include <TMRpcm.h> //Arduino library for asynchronous playback of PCM/WAV files
#include <SPI.h> //  need to include the SPI library
#include <LiquidCrystal.h>

#define SD_ChipSelectPin 10 //connect pin 10 of arduino to cs pin of sd card

LiquidCrystal lcd(3,4,5,6,7,8);
TMRpcm tmrpcm; // create an object for use in this sketch

int temp=1;
int pp=2;

int num_Measure = 128 ; // Set the number of measurements   
int pinSignal = A0; // pin connected to pin O module sound sensor  
int redLed = 5; 
long Sound_signal;    // Store the value read Sound Sensor   
long sum = 0 ; // Store the total value of n measurements   
long level = 0 ; // Store the average value   
int soundlow = 64;
int soundmedium = 120;


void setup()
{  
  pinMode (pinSignal, INPUT); // Set the signal pin as input   
  Serial.begin (9600); 
  lcd.begin(16,2); 

 pinMode(pp,INPUT_PULLUP);
 tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
 if (!SD.begin(SD_ChipSelectPin)) // returns 1 if the card is present
 {
 // Serial.println("SD fail");
  return;
 }

 tmrpcm.setVolume(5); //
 tmrpcm.play("1.wav"); //the sound file "song" will play each time the arduino powers up, or is reset
                                    
}


void loop()
{  

 // Performs 128 signal readings   
  for ( int i = 0 ; i <num_Measure; i ++)  
  {  
   Sound_signal = analogRead (pinSignal);  
    sum =sum + Sound_signal;  
  }  
 
  level = sum / num_Measure; // Calculate the average value   
  Serial.print("Sound Level: ");
  lcd.print("Sound Level= ");
  Serial.println (level-30);  
  lcd.print(level-30);
  if(level-30<soundlow)
  {
    lcd.setCursor(0,2);
    lcd.print("Intensity= Low");
     digitalWrite(redLed,LOW);
  }
  if(level-30>soundlow && level-30<soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Intensity=Medium"); 
     digitalWrite(redLed,LOW); 
  }
  if(level-30>soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Intensity= High");   
    digitalWrite(redLed,HIGH); 
  }
  sum = 0 ; // Reset the sum of the measurement values  
  delay(1000);
  lcd.clear();

      tmrpcm.pause();
      while(digitalRead(pp)==0);
      
}


void song (void)
{
  if(temp==1)
  {
    tmrpcm.play("1.wav");  
  }

}

Moderador:
Encuentro parecido este hilo al que tienes en marcha en el foro en inglés
Led display stopperd
y luego un moderador unió otro hilo tuyo llamado
Sound meter and player using l2c 16x2 display.
Por parecido quiero decir, mismo tema, mismos elementos y no necesariamente preguntes lo mismo, pero si ya tienes un hilo abierto allí, bien puedes continuar en ese hilo y no crear un doble posteo o cross post como este intenta ser.

Asi que voy a cerrar el hilo por las razones que he expuesto.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.