Introduction: VUMETRO CON ARDUINO Y MICROFONO ELECTRET

About: Ingeniero Electronico

Hola Amigos en esta ocasión quiero compartir con ustedes un proyecto que en lo personal me ha dado muchas satisfacciones. Se trata de un indicador de sonido de doce niveles construido con ARDUINO UNO.


Materiales:


1 Micrófono ELECTRET

12 LED (seis verdes, tres azules, dos tomates, un rojo)

12 resistencias de 330 Ohm

2 resistencias de 10k

1 resistencia de 100k

1 condensador de 1uf

1 placa de circuito universal

1 placa ARDUINO UNO R3

Para explicar como Funciona este vumetro los dividiremos en tres etapas:

Step 1: Etapa De Captacion De La Señal

El sonido que hay en el ambiente es captado por el micrófono electret, éste a su vez entrega una señal eléctrica que es proporcional a la intensidad del sonido

Debido a que la señal entregada por el micrófono es demasiado débil se hace necesario amplificarla y filtrarla; para ello utilizamos armamos el circuito mostrado en la figura

Step 2: Etapa De Procesamiento

La señal ya amplificada y acondicionada es llevada hasta el canal analógico A1 del microcontrolador donde la convertimos en un dato digital para luego enviar al puerto serie del computador y poder examinarla con la herramienta Serial Ploter de ARDUINO.

Si observamos el gráfico de la señal; Podemos fijarnos que ésta cambia en un rango comprendido entre 280 y 950. Debido a que la medición se representa con una barra de 12 diodos LED, hemos echo un mapeo de la señal (cambio escala de 200-900 a 0-12)

Step 3: Etapa De Presentacion

Todos leds están conectados a los pines digitales 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 a través de resistencias de 330 ohmios para limitar la corriente y evitar daños en los mismos.

const int ledCount = 12; // numero de leds
int sensorReading; // lectura del ADC 0-1024

int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

void setup() { Serial.begin(9600); //inicamos el puerto Serial for (int thisLed = 0; thisLed < ledCount; thisLed++) {pinMode(ledPins[thisLed], OUTPUT);}// programamos desde el pin 2 al pin 13 como salidas }

void loop() { sensorReading = analogRead(A1);//toammos la lectura del ADC Serial.println(sensorReading); //imprimimos en el puerto serie int ledLevel = map(sensorReading, 200,500, 0, ledCount); // mapeamos desde 300 hasta 900 para los LEDS desde 2 a 13 for (int thisLed = 0; thisLed < ledCount; thisLed++) { if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH);// encendemos los LED segun la intensidad de la señal } else { digitalWrite(ledPins[thisLed], LOW);// apagamos los LED segun la intensidad de la señal } } delay(10); }

Step 4: Vumetro Gigante Seis Efectos

Si lo que deseamos es hacer un vumetro gigante con un gran número de LEDs debemos emplear transistores que conmutan los LED a 12V como se muestra en circuito

En las fotos se muestra un vumetro construido con un PIC18F4550, Con un poco de imaginación podemos hacer que los Led se enciendan mostrando secuencias muy agradables, como se muestran en vídeo:

Para mas información visite mi blog: planetadigital