El sensor de ruido es un módulo diseñado para detectar niveles de sonido en el ambiente y convertirlos en una señal analógica o digital que puede ser procesada por Arduino. Este tipo de sensor utiliza un micrófono electret junto con un amplificador para captar vibraciones sonoras y traducirlas en valores que reflejan la intensidad del ruido.
Es ideal para proyectos como medidores de nivel de ruido, sistemas de alarma sensibles al sonido o activadores por voz. Aunque no mide frecuencias específicas ni reconoce palabras, su facilidad de uso y capacidad para detectar cambios de volumen lo hacen una herramienta práctica en proyectos interactivos o de monitoreo ambiental.
Sensor | Arduino |
---|---|
AO | Pin análogo |
G | GND |
+ | 5V |
DO | Pin digital |
// Definir los pines
int pinAnalogo = A0; // Pin analógico A0 para leer el nivel de ruido
int pinDigital = 2; // Pin digital D0 para detección de umbral
int valorAnalogo = 0; // Variable para almacenar el valor analógico
int valorDigital = 0; // Variable para almacenar el valor digital
// Valor de referencia (máximo valor de lectura analógica posible)
int valorMaximo = 1023;
void setup() {
// Iniciar la comunicación serial
Serial.begin(9600);
// Configurar el pin digital como entrada
pinMode(pinDigital, INPUT);
}
void loop() {
// Leer el valor del pin analógico
valorAnalogo = analogRead(pinAnalogo);
// Leer el valor del pin digital
valorDigital = digitalRead(pinDigital);
if (valorAnalogo > 0) { // Para evitar logaritmos de cero
float dB = 20 * log10(valorAnalogo / float(valorMaximo));
Serial.print("Nivel de ruido en dB: ");
Serial.println(dB);
}
// Mostrar el valor analógico si es mayor que 55
if (valorAnalogo > 55) {
Serial.print("Ruido: ");
Serial.println(valorAnalogo);
}
// Si el valor digital es LOW, se detecta ruido
if (valorDigital == LOW) {
Serial.println("Ruido!");
}
delay(100); // Esperar 100 ms antes de leer nuevamente
}