Finally I have some time to continue with this investigation and great improvements were achieved with the circuit provided by Ant: http://www.rev-ed.co.uk/docs/picaxe_sound.pdf
First here are the photos deleted by mistake from flickr:
Headsets microphones

Electrec thingey inside.

The circuit

This is a closeup of the circuit, I´ve added a 10uF capacitor to stabilize the output signal (it´s the green cap on the right).

The problem here is that I can´t imagine myself soldering all this components onto a pcb, I would like to have at least two of these, four would be awesome.
Click the following button to see source code for Arduino and Processing
/* ****************************************************
Arduino Code
**************************************************** */
int analogValue;
int val;
void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);
}
void loop()
{
// read analog input
analogValue = analogRead(0);
// send values to processing
Serial.println(analogValue, DEC);
// pause for 10 milliseconds:
delay(10);
}
/* ****************************************************
Processing Code
**************************************************** */
// import the Processing serial library
import processing.serial.*;
// declare a font variable
PFont font48;
int linefeed = 10; // Linefeed in ASCII
Serial myPort; // The serial port
// value recieved from the serialport / arduino
int sensorValue;
// mapped value
float sensorValueMap;
// – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – Setup
void setup() {
myPort = new Serial(this, Serial.list()[0], 9600);
// read bytes into a buffer until you get a linefeed (ASCII 10):
myPort.bufferUntil(linefeed);
size (800, 600);
background (0);
//smooth();
// you need to have this font in your machine, if not go to
// Tools – Creat Font – and create your own font
font48 = loadFont(“alask_48.vlw”);
textFont(font48);
}
// – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – Serial Event
void serialEvent(Serial myPort) {
// read the serial buffer:
String myString = myPort.readStringUntil(linefeed);
// if you got any bytes other than the linefeed:
if (myString != null) {
myString = trim(myString);
//println(myString);
// split the string at the commas
// and convert the sections into integers:
int sensors[] = int(split(myString, ‘,’));
// print out the values you got:
for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) {
//print(“Sensor ” + sensorNum + “: ” + sensors[sensorNum] + “\n”);
// sensor
sensorValue = sensors[0];
//sensorValueSmooth = sensors[1];
}
}
}
// – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – Draw
void draw() {
// set the black backgrounf
background(0);
// run the displayText() function
displayText();
// map the recieved values
sensorValueMap = map(sensorValue, 0, 1024, 0, 800);
// draw a rectangle based on the variable sensorValueMap
rect (0, 100, width, sensorValueMap);
}
// – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – Display Text
void displayText() {
text(“Sensor Value”, 20, 80);
text(sensorValue, 450, 80);
}
// – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – Save image
void keyPressed(){
if(key==’s’)
saveFrame(“sound-######.png”);
}

{ 9 } Comments
Hi,
Good work with this project! I’ve been trying to do the exact same thing for a while. I’ve followed the instructions but my mic output is always around 2.5v, and won’t change depending on the amount of sound made. Did you have a similar problem when you tried?
Thanks again,
Lachlan
Something have to be wrong with your circuit because you should be getting readings. Did you double check every connection?
A photo might me useful.
Hi,
I’ve been working on it and have managed to get it working, but the mic doesn’t seem to be sensitive enough. It only changes the voltage if I blow on it, not if I speak or play msuic. It outputs .5v when silent and 3.1v at max. Here’s what I’ve been working on: http://www.filedropper.com/img8468small
Hello. We are doing school project with Arduino board.
We are trying to use the sound sensor too…
We try to find the right components for your circuit.
here is the questions we come across.
can we use this micphone to replace what you have in your set up? (or maybe they are the same?)
http://www.sparkfun.com/commerce/product_info.php?products_id=8669
can we use your piece of code with the microphone i mentioned above?
We are really new to the electronics. I hope that these questions does not bother you…
gloria
Hi! I am not an electronic engineer.. just an enthusiast :) You can ask everything you want.
The microphone I am using is also “Electret”, so I think it is ok.. you just have to figure how to connect it and to read voltage through it.
You are free to use this piece of code! ;) Please send me a link of your project, I will be glad to see it.
hi.
I’ve been making the circuit from the diagram on top of the page, but I’m not getting anything from the serial port (beside zero ;)
Can you post a better photo since I’m probably making some mistakes in te circuit by reading the diagram
good work, nonthess. Amazing sound input.
Hi, sorry I don’t have this circuit on a breadboard anymore, if you send me a good picture I can try to help you.
Good luck
Hi, i wanted to know what the component noted as ‘RV’ for sensitivity control is?
they are potenciometers ;)
{ 4 } Trackbacks
[...] used the sound sensor I’ve done a few days ago and a little paper-boat + a servo and a box and this is the result [...]
[...] Das Projekt baut auf dem Arduino-Sound-Sensor auf: http://lab.guilhermemartins.net/2009/05/03/sound-sensor/ [...]
[...] In the meanwhile Antonio join me in this adventure bringing with him a new revelation: a new circuit for the sound sensor discovered at http://lab.guilhermemartins.net/2009/05/03/sound-sensor/. [...]
[...] In the meanwhile Antonio join me in this adventure bringing with him a new revelation: a new circuit for the sound sensor discovered at http://lab.guilhermemartins.net/2009/05/03/sound-sensor/. [...]
Post a Comment