Introducción: Indicador LED multicolor de decibelios de sonido

Los sensores de sonido se pueden usar para una variedad de cosas, por ejemplo, apagar o encender las luces aplaudiendo, o conducir un LED al ritmo de su canción favorita.

Este proyecto utilizará la placa detectora de sonido para proporcionar retroalimentación al usuario sobre el nivel de decibelios de una habitación. Ya sea que tenga un vecino ruidoso, un bebé llorando o simplemente quiera proteger sus oídos, este sencillo indicador de nivel de sonido RGB proporcionará una retroalimentación visual del nivel de decibelios de los entornos circundantes.

Paso 1: herramientas y materiales

Paso 2: Conexión de la placa de detección de sonido al Arduino

La salida de envolvente le permite leer fácilmente la amplitud del sonido simplemente midiendo el voltaje analógico. La ganancia se puede ajustar con una resistencia de orificio pasante, para cambiar también el umbral del pin de salida binario (puerta). Consulte la guía de conexión a continuación para obtener más información sobre cómo configurar la ganancia.

Paso 3: Conexión de los LED RGB al Arduino

  1. Conecte el pin de la envolvente del sensor de sonido al pin analógico 0 del Arduino. Este será el indicador del nivel sonoro ya que analiza las amplitudes de las ondas sonoras.
  2. Conecte el pin de tierra del LED RGB (pin más largo) al pin GND del Arduino usando un cable de puente.
  3. Conecte los tres pines restantes a tres resistencias de 100 Ω cada uno, que luego se conectan a los pines digitales 4, 6 y 9 de Arduino.
  4. Conecte la alimentación a la placa de sonido conectando el pin de 3.3V y el pin GND del Arduino a la placa del detector de sonido. Tenga en cuenta que Arduino tiene varios pines de tierra y todos son comunes entre sí.

Paso 4: codificación

//pin variables
const int redPin = 4;
const int greenPin = 6;
const int bluePin = 9;
const int soundPin = 0;
//variables for storing raw sound and scaled value
int sound;
int scale;
void setup()
{
 //start the serial port a@ 9600bps
 Serial.begin(9600);
 //set RGB pins to OUTPUT
 pinMode(redPin, OUTPUT);
 pinMode(greenPin, OUTPUT);
 pinMode(bluePin, OUTPUT);
}
void loop()
{
 //read and store the audio from Envelope pin
 sound = analogRead(soundPin);
 //map sound which in a quiet room a clap is 300
 //from 0 to 3 to be used with switch case
 scale = map(sound, 0, 300, 0, 3);
 //print values over the serial port for debugging
 Serial.print(sound);
 Serial.print("   ");
 Serial.println(scale);
 //switch case on scaled value
switch (scale)
{
//if 0 RGB = Blue
case 0:
   digitalWrite(redPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, HIGH);
  break;
//if 1 RGB = Green  
case 1:
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, HIGH);
  digitalWrite(bluePin, LOW);
  break;
//if 2 RGB = Yellow  
case 2:
  digitalWrite(redPin, HIGH);
  digitalWrite(greenPin, HIGH);
  digitalWrite(bluePin, LOW);
  break;
//if 3 RGB = Red
case 3:
  digitalWrite(redPin, HIGH);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, LOW);
  break;
//default off
default:
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, LOW); 
  break;
 }
}

Paso 5: Demostración del nivel de sonido

Mi habitación estaba muy silenciosa en el momento en que se tomó esta foto, por lo que el color del LED se mostró en azul. Cuanto más fuerte se vuelve, como la música de fondo o los aplausos, cambia el color a verde.

Sé el primero en compartir

    Comentarios