Build A Giant LED bar graph Using Arduino

Giant LED bar graph (1)

For a recent project I needed to build a large and obvious bar graph display. This was to show the power generated from a bicycle generator. I came up with this design and was pretty pleased with the final results as it is relatively low cost but still pretty visual. It stands 1.5m high and 10cm wide. It needed to be low power but bright so I used LED arrays.
Here I show the process of building one. This one has 10 light elements, but can easily be extended to suit your idea.
It is designed to be controlled using an Arduino development board, but uses logic shift registers, so can be easily controlled by any microcontroller.The video here shows the unit in action.


The main body is built from electrical trunking, which is available in 2 and 3m sections. This forms a relatively cheap, robust and long enclosure.
The LED light units are 12V DC units from Phenoptix. The PCB was designed by Big Clive and is designed to fit into a standard MR16-type 12V halogen light fitting. They are available in all

Step 1: Parts and tools required

Giant LED bar graph (1)

Parts required:

Electrical trunking 100mm x 50mm in 2m lengths.
I got mine from Screwfix ( but its available in all electrical supply places
2 x End caps for the trunking
Again from Screwfix (

Sheet of ‘frosted’ polypropolyene
I got mine from Paperchase, but you can use thin card or plastic from milk bottles or other stuff here.

10 x 12V LED units.
These were designed by Big Clive ( and obtained from Phenoptix ( and have 9 x ‘super flux’ LEDs on them.
I used 5 green, 3 yellow, 2 red to give an indication of power level.

3mm Machine screws 20mm long
3mm locknuts

Glue – hot melt glue gun would work, or any general purpose glue.

Control circuit:

74HC595 Shift register (
ULN2003 NPN Darligton transistor array (
0.1uF capacitor
100uF capacitor
Piece of strip board (also called Veroboard)

When I built mine the total cost of parts was around £100 (including £60 for the LEDs, £20 for the trunking, £5 for the end caps).


58mm hole saw
Hacksaw for plastic
3mm drill bit
Soldering iron and solder
Strip-board cutter (to cut the tracks in the stripboard – you can also use a drill bit to do this)


Step 2: Build the enclosure

Mark out distances between light elements. I used 130mm between the middle of each light unit. I used 150mm on each end, which made a total length of 1470mm.

Cut trunking to length with hacksaw. Ensure ends are cut straight.

Drill pilot hole for each light element. This ensures they are all in a stright line.

Cut the 10 x holes for the light elements using the hole saw.

Stick the ends onto the trunking

Cut ‘frosted’ plastic to fit the holes. It needs to be just larger than the holes so you have a surface to stick to.
You will need 10 of these, one for each hole. Glue them in place and leave to dry.


Step 3: Build the LED boards

Giant LED bar graph schematic (1)

Solder the LED boards.
The LED kits are available from Phenoptix (click on this link).
They contain 9 super flux LEDs (which have 4 pins) and 4 x resistors.
I was using single colour ones hence all the LEDs and resistors were th same for each board.
Its pretty simple to solder them up but soldering all 10 of them takes a bit of time and some fumes.
The PCB is designed as an RGB device, but I was just using single colours, hence all three inputs needed to be wired together.
The positive lead goes to each LED board. You need to solder a negative control lead to each LED board.Once you have built the LED boards, use a space PCB as a template and drill 3mm holes to hole the PCB.
I used M3 x 20mm countersunk machine screws and locknut to hold the boards in position.
For a flat finish so it will fit on the wall without scratching, use a counter-sink drill bit on the back and the countersunk machine screws will fit into the holes much better.

Step 4: Build the Circuitry

I used the 74HC595 shift register and a ULN2003 NPN transistor array. This has 7 outputs (the shift register has 8 outputs, but the transistor array has 7, so I dont use one of the outputs of the shift register).

The shift register means we can control a greater number of outputs with only a few pins from our microcontroller. It is a serial device so we send data and ‘clock’ it into the shift register. When we set the latch high then whatever sequence we have clocked into the registers will appear at the output.
See this great tutorial for using the 74HC595 shift register with an Arduino. This has the info you need for controlling the lights.
You could build this using individual transistors on each output of the shift register, but that means loads more soldering and is a bit more of a hassle.

Leave a Comment

Your email address will not be published. Required fields are marked *