Sensor BIG SOUND (KY-038)

Hola :slight_smile:

Actualmente estoy trabajando en un proyecto un tanto sencillo, pero que no he logrado hacer funcionar correctamente :sob:
Tengo que desarrollar un dispositivo que capte el ruido de un sal贸n de clases y encienda un led cuando pase un determinado limite, algo como un sensor que ayuda a alertar la contaminaci贸n auditiva en los salones :v . Logr茅 que funcionara, pero no tiene el "alcance" que necesito. Utilice un sensor llamado Big Sound, que utiliza un microfono electrec y tiene un potenci贸metro que aparentemente permite graduar y establecer algo como la sensibilidad. He probado con el potenciometro, y sigue teniendo un rango muy peque帽o, tambien en el c贸digo, y he cambiado los valores, pero a煤n as铆, tengo que estar demasiado cerca para que el led encienda :slightly_frowning_face: .
la pregunta es la siguiente: deber铆a cambiar el sensor? y si es as铆 驴por cual?, o si hay algo que pueda hacer o modificarle al que tengo? . Por favor!, tengo que realizar este proyecto lo antes posible :disappointed_relieved: :sob:

Vale09:
He probado con el potenciometro, y sigue teniendo un rango muy peque帽o

C贸mo recibe el Arduino esa se帽al? Por medio de D0, o A0?
Si dices que a煤n en m谩ximo la se帽al no se dispara, puede que vaya siendo hora de que uses el pin A0 (analogRead) para tal efecto.

Puede que el sonido que recibe el micr贸fono sea tan d茅bil que no alcanza a disparar D0, pero s铆 ser铆a suficiente para detectar variaciones desde A0. Basado en las mediciones de analogRead, ah铆 vas creando el umbral de "ruido aceptable" y "ruido da帽ino".

Espero que me hayas entendido... :slight_smile:

sino un peque帽o amplificador con un bc548 o un operacional.

El pin A0 es la salida de sonido disponible donde este el micr贸fono.
Si quieres mejorar su funcionamiento usa un cable blindado estereof贸nico (Malla sera GND, un cable para A0 y otro para VCC) y lo pones en el aula.
Compras tantos metros como los que requieras hasta donde este el arduino.
Luego en el Arduino conectas, MALLA a GND y los otros dos tal como lo conectaste al m贸dulo. Solo son una extensi贸n.
Ahora tendras mejor recepci贸n.
Pon uno de los ejemplos del IDE que maneja analogRead(A0) y lee las salidas por el monitor serie.
Cuando los chicos griten, tendras valores elevados.. supongamos por encima de 900, bueno ese ser谩 tu umbral de disparo para un timbre o una sirena.

Este es AnalogInput.ino modificado

#define UMBRAL聽 聽 聽  80聽 聽 聽 聽 聽  // poner el valor que se desee ahora fijado en 80%
#define RETARDO聽 聽 聽 1000聽 聽 聽 聽  // 1000 mseg = 1 seg
const byte sensorPin聽  = A0;聽 聽 // select the input pin for the potentiometer
const byte ledPin聽 聽 聽 = 13;聽 聽 聽 // select the pin for the LED
int sensorValue = 0;聽 // variable to store the value coming from the sensor

void setup() {
聽 // declare the ledPin as an OUTPUT:
聽 pinMode(ledPin, OUTPUT);
}

void loop() {
聽 // read the value from the sensor:
聽 sensorValue = map(analogRead(sensorPin), 0, 1023, 0, 100);
聽 Serial.println("Umbral de Ruido :");
聽 Serial.println(sensorValue);聽 聽 // los valores se leeran entre 0 y 100
聽 delay(100);
聽 if (sensorValue > UMBRAL) {聽  // enciende el ledPin algunos segundos
聽 聽  digitalWrite(ledPin, HIGH);
聽 聽  // stop the program for <sensorValue> milliseconds:
聽 聽  delay(RETARDO);
聽 聽  // turn the ledPin off:
聽 聽  digitalWrite(ledPin, LOW);
聽 聽 // stop the program for for <sensorValue> milliseconds:
聽 }
}

UMBRAL esta en % de 0 a 100%
RETARDO esta en milisegundos ahora en 1 seg = 1000 mseg
Si pones el monitor serie , veras en todo momento que esta ocurriendo y como cambiar ese valor de umbral para que dispare tu led/sirena/bocina/buzzer cuando lo desees.

Vale, 隆隆muchas gracias!!, estar茅 probando :slight_smile:

Hola,
Yo tambi茅n he tenido problemas con este sensor. El problema no es el umbral, que se puede ajustar con el potenci贸metro o por software, sino el alcance del micro: alejando unos pocos cent铆metros la fuente de sonido deja de percibir sonidos claramente audibles y adem谩s el rango de salida es muy pobre: una palmada o un silbido a pocos cent铆metros modifica la salida en 1 o 2 unidades sobre 1023 (as铆 que mapear la salida no es demasiado 煤til). Alguna idea?

Y no leise que le suger铆 usar un cable de audio para poner el micr贸fono junto a la fuente?
Otro m茅todo mas sofisticado es usar los RF24 en una configuraci贸n que permite comunicar audio. los hay de bajo alcance y luego los de largo alcance.

Si que lo he leido. Pero si quieres monitorizar ruido ambiente procedente de mas de una fuente, el cable no parece una buena soluci贸n. En cuanto al RF24, puede que funcione, per貌 antes quiero probar con un opamp a ver si estiro la se帽al del electret.

Tengo que desarrollar un dispositivo que capte el ruido de un sal贸n de clases y encienda un led cuando pase un determinado limite,

Yo leo que el problema de ESTE HILO es un sal贸n de clases y detectar cuando se supera cierto nivel de ruido.

Si que lo he leido. Pero si quieres monitorizar ruido ambiente procedente de mas de una fuente, el cable no parece una buena soluci贸n.

Esta es otra pregunta y por lo tanto, merece otro hilo.

Borinot1966:
Si que lo he leido. Pero si quieres monitorizar ruido ambiente procedente de mas de una fuente [...] per貌 antes quiero probar con un opamp a ver si estiro la se帽al del electret.

Depende del operacional, vas a necesitar 7v en la entrada de voltaje positivo (as铆 la se帽al no sobrepasar谩 los 5v, mas los alcanzar谩).

Cuidado al escoger la ganancia, ya que hasta el ruido producido por la misma circuiter铆a ("ruido blanco"), podr铆a sobre-amplificarse.

surbyte:
Esta es otra pregunta y por lo tanto, merece otro hilo.

Te doy la raz贸n. No discutir茅 m谩s del tema si no es en un nuevo hilo... :slight_smile:

Cuando decia lo de

monitorizar ruido ambiente procedente de mas de una fuente

me referia precisamente a una clase con alumnos. Con el ajuste de umbral quiz谩s puedas detectar cuando hay mas ruido de fondo del permisible (aunque por el tema del alcance del micro creo que van a tener que gritar como posesos), pero si alguien grita en la primera fila y otro despu茅s en la cuarta el doble o triple de fuerte, creo que eso no se detecta bien con este sensor.
En fin, espero que Vale09 haya solucionado su problema y gracias a los dem谩s por sus respuestas.

Bueno, al final he probado como var铆a la se帽al con la distancia. A unos 10 cm, la fuente de sonido (el altavoz del m贸vil) es indistinguible del ruido de fondo. Dejo video

Esta claro que ese m贸dulo no funciona muy bien, porque en todo momento en el video se sigue escuchando bien la m煤sica, a煤n a 10 cmts de modo que cuando lo tenian cerca el m贸dulo apenas acuasaba 100mV pp lo que me hace preguntarles? Donde han colocado la punta del osciloscopio porque la salida A0 del m贸dulo de sonido deber铆a y subrayo deber铆a entregar un valor positivo. Lo que veo es un valor positivo o es un valor pico a pico.
Estaba viendo 0 a 200mV o estaba viendo -100 a 100mVpp?

En ambos casos me parece poca ganancia de dicho m贸dulo.

Se veia 0 a 200mV. Tambi茅n he hecho capturas conectando al digital output (da se帽ales cuadradas 0-5V con sonidos cercanos) .Creo que la amplificaci贸n que lleva el sensor solo afecta a la salida digital y no a la anal贸gica. Entre esto y la frecuencia de muestreo que nos da arduino, hace que sea un sensor bastante pobre. En digital, para utilizarlo como detector de palmadas (cercanas) y poco m谩s. Con lo poco que s茅, creo que es mejor utilizar directamente el electret y montar t煤 el circuito de amplificaci贸n.

De todas maneras, es divertido trastear con estos sensores y ver por ti mismo como van.

Entonces cambia la ganancia del Operacional o arma este esquema

con 200mV en un rango hasta 5V no puedes hacer nada.
Create un amplificador que entregue 0 a 5V y sonidos como los del video de youtube ser谩n perfectamente detectados.
Ese modulo sirve para detectar umbrales y tomar acciones. Es de juguete.

Borinot1966:
Entre esto y la frecuencia de muestreo que nos da arduino, hace que sea un sensor bastante pobre.

Y si aceleras las lecturas anal贸gicas? (es posible)

tiene 200mV de un rando hasta 5V
Lo mejor que puede hacer y no es gran cosa pero si ser谩 significativo es poner
analogReference(INTERNAL); y pasa de 5 a 1.1V, mejorar谩 hasta 250 unidades mas o menos pero ahora no logra mas de 40

Si aumenta la ganancia del amplificador, lograr谩 un cambio importante.

Este Sound Detector es uno bueno aparentemente. Tiene ganancias seleccionables.

Ahi se ven la salida anal贸gica y la digital

Creo que montar茅 el circuito del link que posteaste mas arriba. Aunque no podr谩 ser inmediatamente pq estoy liado esta semana y la que viene. Ya os contar茅.

Yo tengo menos apuro que tu jajaja