120cm Neopixel LED Bar - 3x VU Meter + Other Light Effects - Arduino - Bluetooth

21,080

71

16

Introduction: 120cm Neopixel LED Bar - 3x VU Meter + Other Light Effects - Arduino - Bluetooth

About: Interested in everything that has to do with technology or science, but especially electronics and robots. Visit my site: http://bgprojectz.weebly.com/ or youtube: https://www.youtube.com/channel/UCPxUQL1lBaH…

A VU meter project was on my to-do list for a very long time.

Finally found some time to make it happen.

And while I was busy, why not just try to make a big one with some other effects included :)

Step 1: What Can It Do?

A video about all it's functions Bluetooth controlled.

From 0:00 - 1:47 : switching between 3 different VU meters.

From 1:47 - end : switching between 5 other light effects.

More functions might be added in the future.

Step 2: What Do You Need?

- Arduino Uno (Arduino Mega will also work, but do not use Arduino Nano)

- Neopixel strip or individual Neopixels to make your own strip. LED type used here: WS2812B

- Arduino mic module. I used the one showed in the picture, not sure how other types will affect the end result.

- Arduino bluetooth module hc-05

- 5V DC power supply, amperage will depend on how many Neopixels you use. (More about this later)

- Some switch to turn power supply ON and OFF

- 470R resistor

- 1K resistor

- 2K resistor

- 1000 µF, 16V capacitor

- Android device (phone or tablet)

Step 3: Ledstrip or Pixels?

This step is not really necessary.

It's much easier to buy a premade ledstrip, but in my case, I only had pixels laying around.

I drilled holes in a piece of wood to have some sort of template.

This template makes it much easier to solder all pixels in a straight line with equal spacing.

Each pixel has 6 pins,

Below u can find a example how to connect them to each other. (only 2 LEDs in this example)

--------[5V 5V]-------------------------[5V 5V]----------------------

------[Din Dout]--------------------[Din Dout]------------------

------[GND GND]------------------[GND GND]-----------------

I used 84 leds in total,

You can make your strip shorter or longer. (But the arduino sketch will need a modification, more about this later)

Step 4: Connecting Neopixels and Power Supply to the Arduino

I used a 5V DC power supply to power the Arduino and Neopixels. (USB port can't deliver enough power)

The amperage of this power supply will depend mostly on how much leds there are in your ledstrip.

Each individual NeoPixel draws up to 60 milliamps at maximum brightness (white),

for this project the leds will not be on all together at max brightness, but better be safe and calculate with max value

I used 84 Neopixels: 84x 60mA = 5040mA = ~5A

(+ keep in mind, also the arduino itself will take a little bit of power)

So in my case, I chose a power supply that can deliver more than 5A.

Watch out:

-If you want to upload a new sketch to the arduino, make sure to turn off this power supply before connecting the USB cable between PC and Arduino!! (Never connect both at the same time)

-The order of pins on your ledstrip may be different than in above shematic, look at the text printed on your ledstrip and make the correct connections.


Connections:

Power supply GND -> Arduino GND and ledstrip GND

Power supply 5V -> arduino 5V and ledstrip 5V

Arduino pin6 -> 470R -> ledstrip Din

- Adding a ~470 ohm resistor between the Arduino's data pin and
the data input on the ledstrip can help prevent spikes on the data line that can damage your first pixel.

- The 1000uF cap is there to prevent the initial onrush of current from damaging the pixels.

Step 5: Connect the Mic Module

I used 3V3 + AREF here, it gives better readings.

OUT module -> A5 arduino (ANALOG IN, 5)

GND module -> GND Arduino

VCC module -> 3V3 Arduino

3V3 Arduino -> AREF Arduino

Step 6: Test What We Have Created So Far.

Before continuing a little test can be done.

Upload this sketch to your arduino. (Make sure the power supply is disabled when doing this!)

If you have another amount of leds in your strip, just change the number in this line:

#define N_PIXELS 84

You will also need the adafruit neopixel library for arduino: Adafruit neopixel library

When the mic module is exposed to noise or music your ledstrip should behave as a VU meter now. (Same as in the video)

Step 7: Connecting the Bluetooth Module

Note: Your Bluetooth module may have a different pinout. Follow the text on your module.

- I used SoftwareSerial in my arduino sketch -> SoftwareSerial bluetooth(10, 11); so the communication is done through pin 10 and 11.

- The Bluetooth module does communication at 3.3V level, 2 resistors are used as voltage devider to turn 5V into 3.3V


GND module -> GND arduino

5V module -> 5V arduino

module TX -> PIN10 arduino

module RX -> voltage devider -> PIN11 arduino

Step 8: Arduino Sketch

This the full arduino sketch, with 3 VU meters + 5 other ledstrip effects + Bluetooth control.

Changing the number of used leds happens in the same line as before #define N_PIXELS 84 (Try to use a even number, I didn't test odd numbers. VU meter 2 and 3 may have 1 pixel offset)

You will need the "Adafruit Neopixel" and "Fastled" library for arduino.

You can find them here:

Adafruit Neopixel

Fastled

When uploaded in the arduino, nothing will happen, you need the android app from next step to start one of the effects.

Step 9: Bluetooth App

How to install:

  • Find a android phone or tablet that has Bluetooth.
  • Copy the .apk file on this device. (in the downloads folder for example)
  • In the security settings of your device, toggle ON " unknow sources, allow app installation from unknown sources"
  • Now you will be able to find the .apk file on your device and install it.
  • After installation, turn OFF the security setting again.

How to use:

  • First make sure Bluetooth is enabled on your phone or tablet.
  • Also turn ON the power supply for arduino and ledstrip.
  • Find the new icon on your device, called: VUmeter controller
  • Open it.
  • The app should look like the picture added here.
  • Push the gray button "Choose device to connect to"
  • Now you will see all bluetooth devices it can connect with, choose the one from this project.
  • If the connection is succesfull, the "Not connected" text in the app will change in "Connected"
  • The app is now ready to use, push the green buttons to choose a lighteffect.

Step 10: Building a Housing.

I used an old TL lamp for this, but you can use whatever you want.

Showing your creations below would definitely be appreciated!

Have fun!

  • In the future, more features may be added.
Lights Contest 2017

Participated in the
Lights Contest 2017

2 People Made This Project!

Recommendations

  • Battery Powered Contest

    Battery Powered Contest
  • Plywood Challenge

    Plywood Challenge
  • Plastic Contest

    Plastic Contest

16 Discussions

0
manudmaker
manudmaker

8 months ago

kudos to your project and detailed guide. I've tried numerous times to get this working but I have the same problem always, do we have to adjust the mic sensitivity or leave it at its lowest setting for it to work properly, FYI the mic is placed right next to my speaker . by default the led's just keep dancing to some pattern even when the room is dead silent and hardly changes to the music , the wiring is exactly the same but I did not use both the capacitors that u have , will they make a difference? And i have also tried with cheap microphones as well as adafruit microphone

0
GurvinderC1
GurvinderC1

Question 9 months ago on Introduction

Hi thank you for this detailed working,
Iam no expert in this so i don't know much, iam build a back to the future delorean and some people have built using this tech the flames see pic.
Now I know that these have to be programmed, I've sourced all the bits you have mentioned, the question is please how doni program them.
Thank you

Screenshot_20200306-102037_Samsung Internet.jpg
0
patrick.oppermann
patrick.oppermann

9 months ago

Could the microphone be changed out for a 3.5mm jack

0
TangiQ
TangiQ

Question 1 year ago

Hello,
Do you have the file to modify the app on app inventor if it was done on this site?

0
MarcelR28
MarcelR28

1 year ago

Gute Arbeit!

0
선규한1
선규한1

2 years ago

nice~ work!!! but i have question!
if you have 10 lines how doi control it? bu you have solution?

0
AaronS331
AaronS331

2 years ago

Hello, just found this and would love to build. I do have a question though. I would like to use this as a stand alone VU meter to monitor crowd noise levels with normal VU meter colors (green, yellow, red). How can this be accomplished?

1
BenH280
BenH280

Question 2 years ago on Step 10

Could the microphone be changed out for a 3.5mm jack

0
AdrianS105
AdrianS105

2 years ago

Hi, Your project is very good, I am setting it up but I do not have a Bluetooth device, to omit this connection and the changes are made only by means of a key, and I do not have a microphone, there is a way to send the audio signal directly to the arduino board to not use any accsesorio? It would be good if these extra elements were omitted to make the circuit more accessible for those like me who only have an Arduino board and nothing else, since I thank you for sharing this great project that is very good, Congratulations and I await your response, sorry for my bad English.

0
wilson3682
wilson3682

3 years ago

Very nice! Could you please share the apk source code? Did you create it with App Inventor? Thanks!

0
swoollard
swoollard

3 years ago

Nicely done. My issue is my lack of understanding how the colors works. I'm wanting traditional Vu colors (green, yellow, red) and I just can't wrap my head around getting them. I always end up with the whole dang rainbow.

0
hareeshgs
hareeshgs

3 years ago

Have you checked it with a nano?

Post the links for components also so that those who like to make it can purchase them easily.

0
Freakydna
Freakydna

Reply 3 years ago

I have on Nano test and Function very good!

0
hareeshgs
hareeshgs

Reply 3 years ago

Thanks.

0
hareeshgs
hareeshgs

3 years ago

Gr8 effort.Instructions are given, even a beginner can do it.I will be testing it once I receive the neo pixels.