The vu (volume unit) meter is intended as a fun decoration to liven up the atmosphere. It displays the amplitudes of sound as "volume units" (pixels) on a 60-pixel LED strip. There are only a few components, so the wiring is relatively straightfoward. The microphone picks up sounds and transmits them into the Arduino which acts as the LEDs' microcontroller. It then transforms the analog signal of sound into digital bits and feeds it into the LED strip. As the amplitude increases, the height of the pixels increase and the pixels become more reactive. I added static and dynamic functions to the project, so the LEDs can react to sounds in real time or sit on a stationary mode. I used a pushbutton as a means to toggle through the modes.
I definitely learned the usefulness of libraries in the Arduino IDE. The NeoPixel and FastLed libraries were immensely helpful and it was very nice to find example code online to help me through making some functions. The microphone chip itself has adjustable gain and attack/release ratios, so learning how to successfully take advantage of these terminals by jumpering their connections to GND or Vdd was useful. Along the way, I learned how to deal with different attack and release times, which basically deal with the compression of the sound waveforms.
Additionally, I observed the sensitivity of the microphone to background noise because of its automatically adjusting gain, which made programming the minimum range tricky. Sound is best displayed around half a foot away and at medium volume, anything closer overwhelms the microphone and anything further away still works, but it gets jumbled up with any background noise. I also appreciated the direct importance of capacitors and resistors to protect the LEDs and keep any output smooth. Essentially, this project gave me a well-rounded foundation with analog-to-digital transformation in LEDs, and it gave me a fun project to replicate over the summer!