Here we are going to keep all the information referred to the Arduino Audio Meter Board PCB:
Important PDF documents:
The schematic is simple, it has 3 main blocks:
- Analog Input Stage: The weak audio input signal is amplified and filtered, preparing it ready for the Arduino UNO ADC (Analog to Digital Converter). A rail-to-rail operational amplifier is used (MCP6002) to amplify the signal (2 to 30 times) so any audio input signal could be used.
There is some filtering in the input stage to keep the signal bandlimited to prevent oscillations and aliasing:
- C1 and R1 create a high-pass filter (fc=1(1piRC))=1.5Hz, the task is just the remove the any DC voltage from the external audio source.
- R1 will give the virtual ground voltage to pin 5 of the op-amp, the meausured voltage on pin 5 should be 2.3 to 2.5V
- C3 and R3 form a low pass filter, with fc=1(1piRC))=5.8KHz, this fc is pretty common in gutiar pedals to digitalize audio signals (check the Boss CE2 design). It will help to eliminate any aliasing problem
- C4 and R4 create a low-pass filter (fc=1(1piRC))=1.2MHz, the task is to remofe any RF signal and make the circuit stable.
- C15 is a decoupling cap for the op-amp so it will reduce the noise.
The Votlage Gain of the input stage can be calculated as:
Gv = 1 + (R3/(RV1+R2))
Gvmin = 1 + (100K/100K) = 2 (6dB)
Gvmax= 1 + (100K/470R) = 213 (46dB)
So the circuit ensurea a gain between 2 and 213, gutiar signals usually are around 0.2Vpp and the ADC range is 5Vpp, so a gain of 25 will be needed. With that circuit we have a bigger range of gains that can accomodate alsmost any audio input (active, passive pickups, line level, etc).
If you want to use a really exotic audio signal, you can always adjust the gain playing with R2.
- 8x8 LEDs Matrices and Drivers: Four "common anode" matrices are used creating a 16x16 display (the model is 1588BS, 38x38mm). Four MAX7219 chips are used to drive the matrices. The communication between Arduino UNO and the LEDs is made using 3 lines DIN (Data IN), CLK (clock) and Load. The standard LedControl.h Library is used in most of the examples.
- Power Supply: Using four 8X8 LED matrices makes a total of 4x8x8=256 LEDs, because of that the current could rise up to 500mA (Vin=12V). This is why we use a VXO7805-1000 (capable of 1A max. output current). You can use any DC wall adapter from +9V to +12V but it should provide at least 600mA. In the assembly guide you can find more information about the wiring.
A more standard (cheaper and easier to find) LM7805 regulator could also be used but it gets very hot. you woul need to use a decent size hitsink. Take care beacuer the LM7805 pinout is reversed from the VXO7805-1000. So place the 7805 rotated 180degrees.