Archive | LM3914

Tutorial – LM3914 Dot/Bar Display Driver IC


This is the first of three tutorials that will examine the LM391x series of LED driver ICs. In this first tutorial we cover the LM3914, then the LM3915 and LM3916 will follow. The goal of these tutorials is to have you using the parts in a small amount of time and experiment with your driver ICs, from which point you can research further into their theory and application.

Although these parts have been around for many years, the LM3914 in particular is still quite popular. It offers a simple way to display a linear voltage level using one or more groups of ten LEDs with a minimum of fuss.

With a variety of external parts or circuitry these LEDs can then represent all sorts of data, or just blink for your amusement. We’ll run through a few example circuits that you can use in your own projects and hopefully give you some ideas for the future. Originally by National Semiconductor, the LM391X series is now handled by Texas Instruments.


Getting Started

You will need the LM3914 data sheet, so please download that and keep it as a reference. So – back to basics. The LM3914 controls ten LEDs. It controls the current through the LEDs with the use of only one resistor, and the LEDs can appear in a bar graph or single ‘dot’ when in use. The LM3914 contains a ten-stage voltage divider, each stage when reached will illuminate the matching LED (and those below it in level meter mode).

Let’s consider the most basic of examples (from page two of the data sheet) – a voltmeter with a range of 0~5V:

 LM3914 5V voltmeter circuit

The Vled rail is also connected to the supply voltage in our example. Pin 9 controls the bar/dot display mode – with it connected to pin 3 the LEDs will operate in bar graph mode, leave it open for dot mode. The 2.2uF capacitor is required only when “leads to the LED supply are 6″ or longer”. We’ve hooked up the circuit above, and created a 0~5V DC source via a 10kΩ potentiometer with a multimeter to show the voltage – in the following video you can see the results of this circuit in action, in both dot and bar graph mode:

Customising the upper range and LED current

Well that was exciting, however what if you want a different reference voltage? That is you want your display to have a range of 0~3 V DC? And how do you control the current flow through each LED? With maths and resistors. Consider the following formulae:

LM3914 formulae

As you can see the LED current (Iled) is simple, our example is 12.5/1210 which returned 10.3 mA – and in real life 12.7 mA (resistor tolerance is going to affect the value of the calculations).

Now to calculate a new Ref Out voltage – for example  we’ll shoot for a 3 V meter, and keep the same current for the LEDs. This requires solving for R2 in the equation above, which results with R2 = -R1 + 0.8R1V. Substituting the values – R2 = -1210 + 0.8 x 1210 x 3 gives a value of 1694Ω for R2. Not everyone will have the E48 resistor range, so try and get something as close as possible. We found a 1.8 kΩ for R2 and show the results in the following video:

You can of course have larger display range values, but a supply voltage of no more than 25 V will need to be equal to or greater than that value. E.g. if you want a 0~10 V display, the supply voltage must be >= 10V DC.

Creating custom ranges

Now we’ll look at how to create  a lower range limit, so you can have displays that (for example) can range from a non-zero positive value. For example, you want to display levels between 3 and 5V DC. From the previous section, you know how to set the upper limit, and setting the lower limit is simple – just apply the lower voltage to pin 4 (Rlo).

You can derive this using a resistor divider or other form of supply with a common GND. When creating such circuits, remember that the tolerance of the resistors used in the voltage dividers will have an affect on the accuracy. Some may wish to fit trimpots, which after alignment can be set permanently with a blob of glue.

Finally, for more reading on this topic – download and review the TI application note.

Chaining multiple LM3914s

Two or more LM3914s can be chained together to increase the number of LEDs used to display the levels over an expanded range. The circuitry is similar to using two independent units, except the REFout (pin 7) from the first LM3914 is fed to the REFlo (pin 4) of the second LM3914 – whose REFout is set as required for the upper range limit. Consider the following example schematic which gave a real-world range of 0~3.8V DC:


The 20~22kΩ resistor is required if you’re using dot mode (see “Dot mode carry” in page ten of the data sheet). Moving on, the circuit above results with the following:

Where to from here?

Now you can visually represent all sorts of low voltages for many purposes. There’s more example circuits and notes in the LM3914 data sheet, so have a read through and delve deeper into the operation of the LM3914. Furthermore Dave Jones from has made a great video whcih describes a practical application of the LM3914:


As always I hope you found this useful. Don’t forget to stay tuned for the second and third instalments using the LM3915 and LM3916. Full-sized images are on flickr. And if you made it this far – check out my new book “Arduino Workshop” from No Starch Press.

In the meanwhile have fun and keep checking into Why not follow things on twitterGoogle+, subscribe  for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

Posted in electronics, LED, LM3914, TI, tronixstuff, tutorial, voltmeter0 Comments

Part review – The LM3914 Dot/Bar Display Driver

Today we’re going to have a look at an old favourite, the LM3914 Dot/Bar Display Driver. The LM3914 can measure analogue voltage levels and convert that reading to a display of ten LEDs in bar or dot format. By no means is this a new or fantastic product, but for the enthusiast and experimenter it has several qualities that make it attractive…

These qualities include:

  • price – it’s cheap, less than $2
  • It can interface with TTL or CMOS logic
  • You can throw up to +/-35V at the inputs
  • each LED can draw up to 10mA
  • you can daisy chain 2 or more LM3914s to make one heck of an LED meter display
  • you can use a supply voltage between 3 and 25V DC

So it is very forgiving and can produce some fun and useful displays. But first, let’s say hello…



The basic workings of the LM3914 are quite simple and ingenious. It has a ten step voltage divider and an adjustable voltage reference. This means our IC can act as a basic voltmeter, using ten or multiples of ten (each with another LM3914) LEDs to display the result. The resistors R1 and R2 work as a voltage divider, and the voltage across R2 is the range of which the meter will display. For example, if your voltage across R2 is 1.2V, with the difference “displayed” between LEDs 1 and 10 will be ~1.2V. For more information, please see the data sheet (below).

Anyhow, what are we waiting for? Let’s make a voltmeter, that can measure between 0 and ~5V DC using the following example from the data sheet.


That doesn’t look to difficult… will use a 9V PP3 battery for a supply. I have some nifty little LED bar graph modules to use, which will look nice and save time. For a test input signal, I have used an LM317T on a separate board as a variable signal source.



The LM317T has a minimum output voltage in this case of 1.28V and the highest it could generate using a 6.4V source (4 x AA cells) was 5.25v. So when you view the clip below, that is the minimum and maximum sample voltage we used. The LM3914 circuit is meant to measure voltages between 0 and 5V. Let’s see how the demonstration circuit behaved in the following clip. Note that to set the mode from bar to dot requires removing the connection between pin 9 and Vs, s we do this then repeat the voltage range measurement in the second half of the clip. No audio in clip.

Notes: In writing this post, I used information from National Semiconductor, and information from old books by Forrest Mims III. Thank you! More specific manufacturer information from National Semiconductor can be found on their website, or download their data sheet. National Semiconductor LM3914

In the meanwhile have fun and keep checking into Why not follow things on twitterGoogle+, subscribe  for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

Posted in lesson, LM3914, part review, tutorial4 Comments

Subscribe via email

Receive notifications of new posts by email.

The Arduino Book

Arduino Workshop

Für unsere deutschen Freunde

Dla naszych polskich przyjaciół ...

Australian Electronics!

Buy and support Silicon Chip - Australia's only Electronics Magazine.

Use of our content…

%d bloggers like this: