# Seven Segment Display Tutorial

598,025

269

37

Posted

## Introduction: Seven Segment Display Tutorial

How many TV shows and movies have some mysterious device counting down to zero those displays are 7 segment displays.With the 7 segment displays you can display any number or some alphabets that your heart desires.

At first controlling a 7 segment display seems quite complex but it quickly becomes clear.

What follows is a quick guide to control a 7 segment display with a arduino board

If you want to jump ahead to any other part here's your chance:

Step 1 - What Is A Seven Segment Display?
Step 2 - Parts & Tools
Step 3 - Testing
Step 4 - Built The Circuit
Step 5 - Project 1- One Digit Count Down Timer
Step 6 - Multiplexing
Step 7 - Project 2 - Two Digit Count Down Timer

This instructable is a entry in the arduino contest so if you like it please vote.

## Step 1: What Is a Seven Segment Display?

A seven-segment display (SSD), or seven-segment indicator, is a form of electronic display device for displaying decimal numerals that is an alternative to the more complex dot-matrix displays. Seven-segment displays are widely used in digital clocks, electronic meters, and other electronic devices for displaying numerical information.A seven segment display, as its name indicates, is composed of seven elements. Individually on or off, they can be combined to produce simplified representations of the arabic numerals.The seven segments are arranged as a rectangle of two vertical segments on each side with one horizontal segment on the top, middle, and bottom. Additionally, the seventh segment bisects the rectangle horizontally. There are also fourteen-segment displays and sixteen-segment displays (for full alphanumerics

## Step 2: Parts & Tools

Parts:
~ 2 x Seven Segment Display (Common Cathode)- Red,Blue
~ 1 x 330 ohm resistor - Sparkfun.com
~ Arduino Uno(Or equivalent) - Sparkfun.com
~ Some jumper wires - Sparkfun.com

Tools:
~ The arduino programming Environment - Arduino.cc
~ USB Cable A-B - Sparkfun.com
~ Soldering Iron - Sparkfun.com

The total cost should be about 8.10 \$ assuming that you have a arduino,breadboard and all the tools

## Step 3: Testing the Display

Before we connect the seven segment display to our arduino its a good idea to give it a test.

Consult the datasheet of your display for the PIN-OUT and other specs

Wire up your display for testing
~Connect the two common cathodes together and attach a resistor to them
~Connect the common cathode resistor to the -5v
~Test each segment by connecting its pin to +5v
~Experiment and try to make different numbers by lighting one or more segments at the same time

## Step 4: Built the Circuit

Now lets move on to controlling the seven segment display with the arduino.

The circuit is pretty straight forward connect the common cathode's to gnd with a 330 ohm current limiting resistor. Connect the seven segment displays pin number 7(A) to arduino pin2 , 6(B) to arduino pin3 , 4 (C) to arduino pin 4 , 2 (D) to arduino pin5 , 1 (E) to arduino pin6 , 9 (F) to arduino pin7 , 10 (G) to arduino pin8 , 5 (DP) to arduino pin9.For the 2nd project first make the multiplexing circuit below and then follow these connections pattern.Segment A to pin 7, Segment B to pin 8, Segment C to pin 4, Segment D to pin 3, Segment E to pin 2, Segment F to  pin 6, Segment G to pin 5, Gnd1 via resistor to pin 11, Gnd2 via resistor to pin 9.

I have also included the fritzing digram(The worst you can get as I am not good at making circuit diagrams)  for the multiplexed circuit and the simple circuit and pinout of the seven segment display .

## Step 5: Project 1- One Digit Count Down Timer

The first project we are going to do is one digit count down timer.This project will count down from nine to zero.This project does not use any multiplexing but the project 2 includes multiplexing.The circuit digram can be found on step four.

To get started and get playing with this just follow the following these simple steps.
~ Copy or download the code below and paste it in an empty arduino sketch
~ Compile the sketch and upload it to your board. If any problem occurs feel free to ask
~ And now enjoy your count down timer.
~ I have included two files the first one is a compact verson of the  code and the second one is the longer more longer one but is really easy to understand.

Here is a short video of it in action:

## Step 6: Multiplexing

In the technique of multiplexing the entire display is not driven at one time. Instead, sub-units of the display (typically, rows or columns for a dot matrix display or individual characters for a character orientated display, occasionally individual display elements) are multiplexed, that is, driven one at a time, but the electronics and the persistence of vision combine to make the viewer believe the entire display is continuously active.In senven segment displays the various segments of each character are connected in a two-dimensional matrix and will only illuminate if both the "row" and "column" lines of the matrix are at the correct electrical potential. The light-emitting element normally takes the form of a diode so electricity will only flow in one direction, keeping the individual "row" and "column" lines of the matrix electrically isolated from each other.

A multiplexed display has several advantages compared to a non-multiplexed display:
~Fewer wires (often, far fewer wires) are needed
~Simpler driving electronics can be used
~And both lead to reduced cost
~Reduced power consumption

## Step 7: Project 2 - Two Digit Count Down Timer

In the first project we made a one digit count down timer but now its time to move to the next level.This project counts down from twenty to zero.The two seven segment displays are multiplexed to reduce the number of I/O pins used.The circuit digram can be found on step four.

To get started and get playing with the count down timer just follow these simple steps:
~ Copy or download the code below and paste it in an empty arduino sketch
~ Compile the sketch and upload it to your board. If any problem occurs feel free to ask
~ And now enjoy your count down timer.

Here is a short video of it in action:

## Step 8: Final Thoughts

By this point of time you have mastered controlling a seven segment display all that is left is comming up with ideas on how to use it.A seven segment display can be used for various purposes.Some other applications can be found here.Hope this project inspires further experimentation.Dont forget to follow mores comming up.

I have lots of plans for the displays.If you make something innovative please post some pictures or E-mail me at r1398ohit@gmail.com.

## Recommendations

• ### Arduino Class

68,828 Enrolled

• ### Microcontroller Contest

We have a be nice policy.

## Questions

Halo @Bot1398,

I learnt the pin configurations of the 7 segment LED & how to wire it up on the bread board.

Specifically, Steps 3 & 4 are very helpful.

I wired the displays but Im having hard time wiring arduino to displays because it's pretty hard to see which wire goes where. Anyone knows how to wire it and is willing to tell me I'd appriciate it.

Thanks for you tutorial, I made it and It worked for me but I used a lot of pins, so I tried with a decoder BCD to 8 Segments(7447) but also I need to use 4 pins and I need them for other input devices. Finally I'm using a TM1637, in this case i just need 2 pins and the device is cheaper ;). Regards!!

SirJiiiiiiiiiiii!!!!!!!!!!!!!!!!!!!!

I am very happy that you have used an indian coin !

Will be even happier if you are Indian too ! :)

i also need the code for 3 digits 7 segment countdown timer using shiftregister, help?

pls send me the code for a 3 digit, 7 segment count down timer

Let say I have 9 switches, how to appear the number accordingly with all the switches? Like switch A=1, B=2, C=3 and so on..

Thanks.

How did this happen? Sorry but i don't get it.
{ { 1,1,1,1,1,1,0 }, // = 0
{ 0,1,1,0,0,0,0 }, // = 1
{ 1,1,0,1,1,0,1 }, // = 2
{ 1,1,1,1,0,0,1 }, // = 3
{ 0,1,1,0,0,1,1 }, // = 4
{ 1,0,1,1,0,1,1 }, // = 5
{ 1,0,1,1,1,1,1 }, // = 6
{ 1,1,1,0,0,0,0 }, // = 7
{ 1,1,1,1,1,1,1 }, // = 8
{ 1,1,1,0,0,1,1 } // = 9

3 replies

these are binary codes to activate lines. o means we have to activate a,b,c,d,e,f so 1,1,1,1,1,1 and g is 0..

how is that working can u tell pleas

its the binary relevant to the seven segment, each 1 turning on a line of the seven seg.

can someone please email me the code in arduino ide format as I can't seem to make this code work

HI
I need to connect it to 4 PIR motion sensors...designated as 1 2 3 & 4...and output to be displayed accordingly...

what are the changes need to do when you are using common anode seven segment display instead of common cathode seven segment display.hint:using transistors

Hi, I'm building a prop and I need a display that counts down from 99. There are two contacts, every time the first contact is made the counter runs down 10 digits potter second till it his zero. The second don't will reset the counter to 99 when pushed. Besides the additional hardware do I need a different controller for this kind of programming?

hallo i want to ask, how to change the coding to up counter? can anyone help please.. urgent

Hello all, I need circuit diagram of 2 digit seven segment display.

Unfortunately I can't test my 7-Segment Display... Your method is not working. I'm using a KINGBRIGHT SA52-11GWA.

I think its a common anode one...