maxid:
yo estube pensando hacer algo parecido, me imaginé usar 3 canales, uno para cada color, con un filtro de frecuencia ejemplo:
de 10 khz a 300khz de 300khz a 500kz y de 500 a 1000khz
entonces cada microfono capta un rango y da una intensidad de color. tienes que usar un preamplificador para microfono y un zener de 5v en la salida para no pasar de tension si el pre está allimentado a mas de 5v por cada canal.
http://www.taringa.net/posts/hazlo-tu-mismo/15477236/Preamplificador-casero-para-micro-electret-o-guitarra.html
Hola maxid, mi idea no era tan ambiciosa como la tuya. Con haber cambiado el color de forma aleatoria con la función RANDOM, Y haber cambiado la velocidad a la que cambiara el color, dependiendo del valor del supuesto micrófono, me hubiese dado por satisfecho, sin sonido o sonido tenue, apenas cambiaría de color, a mas volumen, o sonido más alto cambiaría mas rápido de color. Con la función delay.
La verdad que el sensor que tengo no le veo mucho sentido, pues si solo capta o silencio o un poco de ruido. Para eso un sensor de presencia y ha correr.
He encontrado un programa mas nutrido que el anterior, pero con resultados muy parecidos, Osea ninguno.
// http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Sound_Sensor
// Function: If the sound sensor senses a sound that is up to the threshold you set in the code, the LED is on for 200ms.
// Hardware: Grove - Sound Sensor, Grove - LED
/*macro definitions of the sound sensor and the LED*/
#define SOUND_SENSOR A0
#define LED 3 // the number of the LED pin
#define THRESHOLD_VALUE 400//The threshold to turn the led on 400.00*5/1024 = 1.95v
void setup()
{
Serial.begin(9600);
pins_init();
}
void loop()
{
int sensorValue = analogRead(SOUND_SENSOR);//use A0 to read the electrical signal
Serial.print("sensorValue ");
Serial.println(sensorValue);
if(sensorValue > THRESHOLD_VALUE)
{
turnOnLED();//if the value read from A0 is larger than 400,then light the LED
delay(200);
}
turnOffLED();
}
void pins_init()
{
pinMode(LED, OUTPUT);
pinMode(SOUND_SENSOR, INPUT);
}
void turnOnLED()
{
digitalWrite(LED,HIGH);
}
void turnOffLED()
{
digitalWrite(LED,LOW);
}
La verdad que el tema este me esta mareando un poco. He mirado el enlace que me mandaste y no se lo veo un poco lío, pues yo pensaba que con el micrófono que tenia era cosa de plug an play, y ha correr.
Tengo otro hardware, que me podía ampliar la señal del micrófono, pero no tengo claras las conexiones.
http://cgi.ebay.es/ws/eBayISAPI.dll?ViewItemVersion&item=221335607367&view=all&tid=1304483820012
La entrada la tengo clara, pero la salida es de dos canales, puedo utilizar solo uno, pero hay dos salidas L(+) , L(-)
Bueno este hilo puede que no ayude a nadie con lo que tiene que hacer, pero si con lo que no tiene que hacer, si quiere hacer un ejercicio como el mío.