Arduino VU Meter with LCD

Having the ability to see sound levels is a useful tool for setting levels on audio equipment. It can also be a fun addition to for entertainment systems to get more connection to the music.

This project from Jorghe Ayala uses an Arduino to process an audio signal and visualize the loudness level over time on a Liquid Crystal Display.

This project was submitted by one of our members.  You can see more of our member's projects here.

Not a member yet?  Sign up here.

Arduino VU LCD display

Concept

A 3.5mm jack is plugged into an analog input for Arduino and a mapping function produces results corresponding to a defined character on the LCD display. The Arduino displays to the LCD using 16 rows divided into 2×8 row characters and plot it in time by scrolling each column in the whole LCD.

Arduino VU LCD Diagram

Hardware

The project is connected with the following hardware:

The Arduino UNO was used here, but many others, even larger versions such as Leonardo, Mega, etc. could be used instead.

Jorghe used a 20×4 Liquid Crystal Display with HD44780 interface: https://www.sparkfun.com/products/256
Almost any display can be used to display audio level according to your code, even bare LEDs.

To amplify the analog signal from the jack, Jorghe used an LM124N. It’s very cheap and easy to find, and there are many other amps that can be substituted in. Some amps have better processing power and can use a high fidelity signal for the input, but in this case it’s irrelevant since we’re dividing in 16 segments only. http://www.ti.com/lit/ds/symlink/lm124-n.pdf

The most common way to get audio is a 3.5mm female jack for the input analog signal, you might also use an alligator clip to connect to another source. An iPod, phone, or any other player can be the source.

Hard Work Pays Off…

Jorghe built up a cool tool to visualize music levels with his Arduino project.  It can also be used to set levels for recording or make light shows timed to music.

He took some time learning about the analog input and getting useful input levels with an amplifier, and mapping that input level to new values and characters to display on a screen that is both useful and entertaining.  Nice work!

If you are interested in learning more about the specific of the project – including taking a look at all the code – you should absolutely check out the Jorghes GitHub page for the project here:
https://github.com/Jorghe/LCD-VU-meter

installing Arduino libraries

Installing Arduino Libraries | Beginners Guide

IoT sewage project

Pumping poo! An IoT sewage project

ESP32 webOTA updates

How to update ESP32 firmware using web OTA [Guide + Code]

error message Brackets Thumbnail V1

expected declaration before ‘}’ token [SOLVED]

Compilation SOLVED | 1

Compilation error: expected ‘;’ before [SOLVED]

Learn how to structure your code

Leave a Comment