Sound Level Meter With 3 Color LED 8x8 Matrix
by jandb86 in Circuits > Arduino
1385 Views, 8 Favorites, 0 Comments
Sound Level Meter With 3 Color LED 8x8 Matrix
This is the final round of the Sound Level Meter (From hereinafter as SLM) circuit-making project.
According to the diverse functional and performance results collected from the 4 previous SLM projects, the last version of the SLM circuit is made as shown in the picture above.
Except for the 3-color 8x8 LED matrix display, all other circuit components are the same as the previous SLMs.
As shown in the picture above, the 3-color LED matrix display is a kind of iconic presentation shape applied to audio amplifiers and even in some mp3 music-playing application programs.
Therefore, I want to make a similar SLM which have an iconical display pattern and shape.
But because of the LED control capability limitation by one MAX7219 IC, only an 8x8 size 3 color LED display is made.
Anyway, a total of 64 Green/Yellow/Red LEDs are soldered together to make an 8x8 dot matrix display.
And the whole 8 columns and 8 rows of LEDs are controlled by one MAX7219 dot matrix display driver IC.
When comparing other SLMs previously made, I think the displaying pattern of this SLM is the most interesting.
Let's look at more details about how this circuit is made.
Schematics
The 3-color 8x8 LED matrix display is the most important part of this new SLM.
Including all components (MIC, Pre-amplifier, 8x8 matrix), the SLM circuit details are depicted in the schematics above.
Likewise, with the commercial 8x8 dot matrix display circuit, the same wiring scheme is applied with 64 LEDs and MAX7219 display driver IC.
Additional resistors and capacitors are added to the LED matrix circuit to support the correct operation of the MAX7219 chip.
As the MAX7219 chip needs to connect 8 columns and 8 rows of LED banks to the dedicated output pins, you should carefully connect LED arrays as shown in the schematics above.
When the wirings of 8 columns and rows of LEDs with MAX7219 are not correct, you will see very strange display patterns when you drive the dot matrix driver IC with a sketch program.
I'll explain details about how 64 LEDs are wired and soldered together in the later step.
Except for 3 color LED display, all other components are the same as other Arduino-based SLMs.
The electret MIC, op-amp-based pre-amplifier circuit is interfaced to the Arduino Uno board.
Overall circuit components are depicted together in the schematics shown in the picture above.
Parts
For the testing of the new electret MICs, I tried different parts with this SLM.
As 12V input voltage is used, the most performing one was the FQ-057 electrets MIC which was used for making twp 8x8 dot matrix SLM.
Except for the new LED matrix display, the same parts are used as in the case of other Arduino-based SLMs.
***
3 color LED matrix circuit including the following parts
- Thin square type Green x 24, Yellow x 24, Red x 16 LEDs
- MAX7219 8x8 dot matrix display driver IC
- 10K, 27K resistors 1/4W
- 10uF electrolytic and 0.1uF ceramic capacitors
- AWG 24 tin wires (for connecting all 64 LEDs)
Pre-amplifier circuit including the following parts
- FQ-057 electrets MIC
- NE5534, TL071 op-amp IC
- 1/4W 47K, 100K, 10k, 27K, 22K resistors
- Potentiometer 10K
- Electrolytic capacitors 2.2uF, 4.7uF x 2EA, 10uF x 2EA all rated more than 50V
- Film capacitors 100nF 50V
Arduino Uno is used for the main controller of the SLM circuit
- LM7812 voltage regulator
- 0.33uF (Film) and 0.1uF (Ceramic) capacitors
***
As the weak signal voltage capturing capability of the new electret MIC is not good, a relatively high (12V) power supply voltage is applied to the pre-amplifier circuit.
Wiring and Soldering
The most difficult part of this new SLM circuit is wiring 64 LEDs and soldering them to a PCB.
As each LED is located right next to others, wiring of individual LED is very difficult.
As shown in the wiring diagram above, I used very thin wires (AWG24) to connect together all cathodes and anodes of 64 LEDs.
For column direction of wires are not physically in contact with row direction of wires, column direction of thin wires are pulled up from the PCB back side to front and again pull downed to back side as shown in the wiring diagram above.
This work is very laborious and time-consuming.
Also, each LED's cathode and anode lead should be soldered very carefully.
Otherwise, some LEDs will not be turned on when driven by MAX7912 matrix display driver IC later.
The 8 columns and another 8 rows of wires should be connected to predefined control pins of MAX7912 IC.
If the control pin wiring is not correct, the displayed pattern will be very strange and confusing while operating SLM.
Therefore, displaying certain typical patterns (such as a heart or arrow) is required when soldering is finished.
For validating wirings between 64 LEDs and MAX7912, testing of LED matrix with typical pattern is required before making sketch program.
When 3 colors LED matrix is correctly wired and soldered, connection with the Arduino board is very simple as only 3 wire connections (DIN, CS, CLK) are necessary as shown in the schematics above.
As several times of explanations are already done for the wiring and soldering of the pre-amplifier and Arduino, I'll not mention the details in this Instructable.
You can refer to the previous Instructables for the wiring and soldering details among the display module, pre-amplifier, and Arduino board.
Sketch Program
As shown in the previous Instructable, the audio signal processing capability of the pre-amplifier circuit is already known.
The output voltage range of the pre-amplifier is about 0.03V ~ 3.9V with a 9V power supply.
Therefore, the sketch program used for driving two 8x8 dot matrix displays is slightly modified.
The same sound level processing logic is used such as turning on a single LED at the 100~310 range and so on.
But as this SLM use only one 8x8 LED matrix, the sound level pattern displayed is simplified as shown in the picture above.
At each time slot from t1 to t8, the left-most column is shift-out and disappears.
At the same time the 7 sound level patterns from column 1 to column 7 shift to left. (column 7 -> column 8 ~ column 1 -> column 2)
And then a new sound level (stored in byte variable audio) is inserted into column 1 position.
The above actions are repeated at each time slot (about every 150ms).
When comparing the sketch program of SLM using two 8x8 dot matrix modules, the new SLM program is more simple and easy to understand.
Downloads
Operation and Conclusion
So far a total of 4 other SLM circuits are introduced as follows.
- Analog circuit-based SLM using op-amp-based pre-amplifier and LM3915 display driver IC
- The same analog circuit-based SLM but small profile variants
- MAX4466 MIC-Amp and Arduino board-controlled SLM
- Two 8x8 dot matrix, op-am based pre-amplifier, and Arduino-based SLM
The analog-based SLMs are supporting very accurate sound level display by hardwiring between audio capturing and processing circuit parts.
But functional modification for making customized SLM operations is not supported.
In the meantime, Arduino-based SLM can support customized sound level processing and displaying functionalities.
But with the artificial handling of the captured audio signal, the accuracy of captured sound levels can be distorted when signal processing logic is not correctly designed.
Anyway, whatever the characteristics of the other SLMs, I more like this new SLM's display pattern as the output is similar to the iconical displays integrated into audio amplifiers or screen skins of MP3 playing apps.
You can see the video of the new SLM operation with the link below.
https://drive.google.com/file/d/1mk8FvLjJekWEtQIMmRv2yOhw7x1dfUoj/view?usp=sharing
This is the last story about the SLMs.
Thank you for reading!