Analog VU Meter and Clock (Arduino Powered)
Intro: Analog VU Meter and Clock (Arduino Powered)
This project brings back the old time Analog VU Meter, with the added functionality of a neat looking clock! When you turn off your music the meters automatically swing into to clock mode. Behind it all is the popular and easy to use Arduino.
This is my submission for the Make-to-Learn Youth Contest:
What did you make?
I made an old style analog VU meter and Clock using 2 analog panel meters, an Arduino, a real time clock, and other simple components. How it works: The unit plugs into a standard 3.5mm speaker jack. The Arduino reads the sound levels and converts it into electric pulses (PWM) to control the analog meters. When no sound is detected, the unit automatically changes to Clock mode and displays the time which is read from the real time clock circuit.
How did you make it?
I got the idea to make an analog VU meter from seeing them used in older audio receivers and amplifiers. I was always intrigued by the effect of a needle “dancing” to the beat of music. With my basic knowledge of electronics and the Arduino platform, I decided that I could make one myself. After searching around the internet to see if anyone had done anything similar, I found that many people create Clocks with analog panel meters. Well, why not include both functions?
Where did you make it?
I made this at home by myself. I like to listen to music a lot and I am always tinkering and playing with electronics. I thought that this would be a fun project to compliment my speaker system which I also built myself.
What did you learn?
I learned a lot from this project. The hardest thing to get right was the programming. I have never worked with analog panel meters before, so getting them to display time and sound accurately was challenging. For example: It was hard to get both meters to point exactly straight up at 6:30. I also learned that connecting the Arduino directly to an audio source can distort the audio. To fix this, I added some resistors and the distortion went away.
Video:
This is my submission for the Make-to-Learn Youth Contest:
What did you make?
I made an old style analog VU meter and Clock using 2 analog panel meters, an Arduino, a real time clock, and other simple components. How it works: The unit plugs into a standard 3.5mm speaker jack. The Arduino reads the sound levels and converts it into electric pulses (PWM) to control the analog meters. When no sound is detected, the unit automatically changes to Clock mode and displays the time which is read from the real time clock circuit.
How did you make it?
I got the idea to make an analog VU meter from seeing them used in older audio receivers and amplifiers. I was always intrigued by the effect of a needle “dancing” to the beat of music. With my basic knowledge of electronics and the Arduino platform, I decided that I could make one myself. After searching around the internet to see if anyone had done anything similar, I found that many people create Clocks with analog panel meters. Well, why not include both functions?
Where did you make it?
I made this at home by myself. I like to listen to music a lot and I am always tinkering and playing with electronics. I thought that this would be a fun project to compliment my speaker system which I also built myself.
What did you learn?
I learned a lot from this project. The hardest thing to get right was the programming. I have never worked with analog panel meters before, so getting them to display time and sound accurately was challenging. For example: It was hard to get both meters to point exactly straight up at 6:30. I also learned that connecting the Arduino directly to an audio source can distort the audio. To fix this, I added some resistors and the distortion went away.
Video:
STEP 1: Materials
Shopping List:
- 2, 5v Analog panel meters (Amazon) or (Amazon)
- Arduino (I used the pro mini) (Amazon)
- DS1307 Real time clock (Amazon)
- Protoboard (Amazon)
- 10K potentiometer (DigiKey)
- 2 tactile switches (DigiKey)
- 4 10K resistors (DigiKey)
- 4 white LEDs (optional) (DigiKey)
- USB cable (DigiKey)
- 3.5mm cable (DigiKey)
Total cost is around $47. It will be less if you have some of these parts already.
- 2, 5v Analog panel meters (Amazon) or (Amazon)
- Arduino (I used the pro mini) (Amazon)
- DS1307 Real time clock (Amazon)
- Protoboard (Amazon)
- 10K potentiometer (DigiKey)
- 2 tactile switches (DigiKey)
- 4 10K resistors (DigiKey)
- 4 white LEDs (optional) (DigiKey)
- USB cable (DigiKey)
- 3.5mm cable (DigiKey)
Total cost is around $47. It will be less if you have some of these parts already.
STEP 2: Meter Lights
This step is completely optional, but I decided to put some lighting inside my meters.
First, I took the covers off the meters and drilled two small holes for the LEDs. Then I simply hot glued the LEDs into place. Be careful when drilling and hot gluing because the inside of the meters are relatively fragile.
It is better to use diffused LEDs for this application, but I did not have any diffused white LEDs around. So, I diffused some clear LEDs by using some sandpaper.
Don't forget resistors!
First, I took the covers off the meters and drilled two small holes for the LEDs. Then I simply hot glued the LEDs into place. Be careful when drilling and hot gluing because the inside of the meters are relatively fragile.
It is better to use diffused LEDs for this application, but I did not have any diffused white LEDs around. So, I diffused some clear LEDs by using some sandpaper.
Don't forget resistors!
STEP 3: Assembly
The assembly is pretty straight forward. See the pictures for more details.
Note: If you only want to use it as a clock, you do not need the audio cable or the potentiometer.
Wiring goes as follows:
- USB red wire (5v) to VCC
- USB black wire to GND
- 3.5mm Audio left channel to 10K resistor to Analog 1
- 3.5mm Audio right channel to 10K resistor to Analog 2
- 3.5mm Audio ground to GND
- Potentiometer to Analog 0 (follow potentiometer wiring)
- Buttons - Left/Down to Digital 2 (follow button wiring)
- Right/Up to Digital 3
- DS1307 RTC - SDA to Analog 4
- SCL to Analog 5
- Left Analog Meter to Digital 5 (PWM)
- Right Analog Meter to Digital 6 (PWM)
Note: If you only want to use it as a clock, you do not need the audio cable or the potentiometer.
Wiring goes as follows:
- USB red wire (5v) to VCC
- USB black wire to GND
- 3.5mm Audio left channel to 10K resistor to Analog 1
- 3.5mm Audio right channel to 10K resistor to Analog 2
- 3.5mm Audio ground to GND
- Potentiometer to Analog 0 (follow potentiometer wiring)
- Buttons - Left/Down to Digital 2 (follow button wiring)
- Right/Up to Digital 3
- DS1307 RTC - SDA to Analog 4
- SCL to Analog 5
- Left Analog Meter to Digital 5 (PWM)
- Right Analog Meter to Digital 6 (PWM)
STEP 4: Programming
The programming for this is relatively simple, but the hardest part is getting your meters to display time accurately. For example, when it is 6:30 both meters should be pointing straight up. Because all meters are slightly different, the PWM values need to be adjusted based on your design. Feel free to use my code, but you will have to change some values because it is set to work specifically with my meters
To program the Arduino Pro I used my Arduino Duemilanove because I don't have a FTDI programmer. Just remember that if you use your Arduino, you have to remove the Atmega chip before you program a separate device.
The code is not perfect, but it works. I don't have a whole lot of programming knowledge, so let me know how I can improve it.
If you only want to use it as a clock, download the ClockONLY code.
To program the Arduino Pro I used my Arduino Duemilanove because I don't have a FTDI programmer. Just remember that if you use your Arduino, you have to remove the Atmega chip before you program a separate device.
The code is not perfect, but it works. I don't have a whole lot of programming knowledge, so let me know how I can improve it.
If you only want to use it as a clock, download the ClockONLY code.
STEP 5: Enclosure
I decided to make the enclosure with only two pieces of wood. I drilled out the holes for the meters, painted the base, and screwed on a thin piece of wood which I covered in a thick felt material. I chose this design because it was easy to build and allows easy access to all of the electronics.
STEP 6: Custom Meter Backgrounds
Because these meters have to display time, I had to customize the backgrounds. I scanned the back plate of the meters and used MS Paint to create a custom background. Then I printed the design on card stock paper screwed it in place. You can download the designs that I have attached below if you have the same or similar meters.
STEP 7: Finish!
It's finished! Plug it into a USB port and plug the audio cable into a jack splitter. Set the time using the buttons and adjust the audio sensitivity with the potentiometer.
Thanks for reading!
Please consider giving me a vote in the Make-to-Learn Youth Contest!
See the video:
Thanks for reading!
Please consider giving me a vote in the Make-to-Learn Youth Contest!
See the video:
54 Comments
writingmonkey 3 years ago
But when i plug it in and run the code, it goes instant to 100. then to 80 and then back to 100. im tinkering for a few hours now but i cant seem to find a solution.
DavidB552 3 years ago
I think its becouse the script is only printing the same time over and over
im sure its not on the rtc as it runs other scripts fine
you shed any light ?
writingmonkey 3 years ago
DavidB552 3 years ago
writingmonkey 3 years ago
DavidB552 3 years ago
I'm sure either the etc click is the issue or the script
writingmonkey 3 years ago
DavidB552 3 years ago
as then one I brough looks diffrent for a start its battey is on the same side as the crystal
evan.stoddard 10 years ago
writingmonkey 3 years ago
ArunK197 7 years ago
Can you please provide a link to you code please.
Thanks
GiAnniP12 5 years ago
It's really fantastic. Is it possible to have a copy already boxed for a fee? Thanks.
JogeirL 5 years ago
https://www.awkwardengineer.com/products/model-awk-105-analog-voltmeter-clock
andrea biffi 6 years ago
awesome! I wish to make it
hycday 8 years ago
Hi !
awesome project :) I could manage to get the clock working, however, no way of reading the sound from an audio jack...I looked everywhere on other websites/forum/guides etc, no way of catching the ouput from an audio jack, sending it to the arduino, reading it with analogRead and doing something with it...any hints ?
Thanks a lot for your help
Evoluzion 10 years ago
ChrisE3 9 years ago
The reason is that, on a scale of 1-12, 6 is not in the middle. The gap between 6 and 7 should be at the centre. If you want to have 6 right at the centre, the scale should start at 0 (e.g. for midnight) and the code would need to be tweaked to handle the difference between midnight and noon. Otherwise, adjust the 'hours values' to get a truly linear scale with the 6-7 gap in the middle.
Nice project!
benellisor 9 years ago
having a voltage problem on both the hour and minute meters.
voltage from arduino pro mini will not produce full scale 5vdc.
currently my full range voltage is 0-4vdc. i assume this is a code issue.
if anyone has an idea please let me know.
Zabala 10 years ago
Hi, its great!! i have a analog pannels and you give me an idea. Thanks
So... where is the code and the draws for a pannel? do you have it?
Zabala 10 years ago
ok i found it, thanks