Introduction: Sound Pressure Sensor and Mike Pre-amp for Arduino

About: I am a physician by trade. After a career in the pharmeceutical world I decided to take it a bit slower and do things I like. Other than my hobbies that involves grassroots medicine in S.E.&P Asia. I have buil…
I have published a Sound pressure Sensor for the arduino (or other microcontroller) before.
It was based on a TLC272 double Op-amp and did very well.
One of the people reacting though was asking if I had done any soundwave analysis with it. I did not because the circuit was not meant for that: It was purely meant to convert a certain level of sound to an anologue level that as such gave an indication for the total Sound level.

Nevertheless that circuit can also used as a preamplifier, simply by tapping the signal from the Output of OP 1.

But of course it is a bit better to make a decent PCB design for it, but as I always like to experiment a bit, I decided to built the circuit a bit different. For those who do not want to solder. The Freetronics soundboard is very akin to this one

BOM (Bill of materials)
This is what is needed:
1 elektret microphone
R1 -2k2
R2-10k precision
R3-10k precision
R4-10k
R5-1M
R6-100k
R7-68k
R8-1k
R9-1k2
R10-1k
C1-4,7uF
C2-1uF
C3-12pF
C4-100nF
C5-2,2uF
C6-2,2uF
C7-100nF
L1 ferrite bead
LED
IC1-TLC272
8pins DILfoot
print header 4xSIL

With regard to R2 and R3: the actual resistance is not so important as long as both resistors are the same. 2x12k or 2x15k works equally well.

The same goes for R7 and R8. It is more about the ratio than about the actual value a 47k vs a 680R works just as well.

The larger capacitors do not necesarily have to be electrolytic capacitors, but if that is what you have.... I indicated the polarity

L1 is not really necessary, but together with C5 it helps keeping the power supply line clean.

This microphone amplifier is based around the TLC272 double opamp.
The first opamp is  used as an amplifier. The voltage offset on the positive input is set to half Vcc with R2 and R3. The Closedloop gain is set at 100 by R5 and R4. There is an AC coupling/high pass filter to the 2nd opamp by C4 and R6. The second opamp is used as comparator: R7 and R8 determine a level sensitivity of 71 mV (with 5 Volt Vcc). The delay in the RC filter at the SPL output is 3ms (150+1200)*2,2uF  in which 150 is the internall pull up of the TLC272.

SPL is the sound pressure level. There is also an audio output for the amplified microphone signal. As the audio signal is DC coupled, the signal will swing around 1/2 Vcc

The maximum Vcc is about 10 Volts, but if used with e.g. the Arduino, the Vcc should be equal to that of the Arduino. The minimum voltage the Opamp needs is 3 Volt. I have also tried an TL072 opamp that is supposed to be suited for audio circuits but my results with it were not as good as with the TLC272

Step 1: The PCB

The PCB is quite simple. Because of the size of the scrap I had, I made it a bit bigger, but it can easily be made smaller.
As I presume people building this are confident in soldering, I am not going to waste much words on it.

For those who are checking the colorcodes on some resistors against the values mentioned... yes sometimes they are different. e.g. with the 1Mohm I made a mistake coz the bag was falsely labelled. So had to solder it out and replace by a real 1Mohm

Step 2: Software

The following code will read the SPI 4 times a second and write it to the screen

//Reading SPL
const int spl = A0;   // the SPL output is connected to analog pin 0

void setup() {
Serial.begin(19200);
}

void loop() {
  Serial.println(analogRead(spl), DEC);
  delay(200); 
}