# 7 Segment Display on Arduino

267,311

74

44

## Introduction: 7 Segment Display on Arduino

This instructable shows how to display 0-9 digits on 7 Segment Display using Arduino.

What do you need:

• Arduino Uno 3
• 7 Seven Segment Display
• 2 x 220 Ohm Resistors
• Jumper Wires

## Step 1: Making Connections

Connect the pins described below:

1. Arduino Pin 2 to Pin 9.
2. Arduino Pin 3 to Pin 10.
3. Arduino Pin 4 to Pin 4.

4. Arduino Pin 5 to Pin 2..

5. Arduino Pin 6 to Pin 1.

6. Arduino Pin 8 to Pin 7.

7. Arduino Pin 9 to Pin 6.

8. GND to Pin 3 and Pin 8 each connected with 220 ohm resistors.

## Step 2: Arduino Code

`int a = 2;  //For displaying segment "a"`
```int b = 3;  //For displaying segment "b"
int c = 4;  //For displaying segment "c"
int d = 5;  //For displaying segment "d"
int e = 6;  //For displaying segment "e"
int f = 8;  //For displaying segment "f"
int g = 9;  //For displaying segment "g"```
```void setup() {
pinMode(a, OUTPUT);  //A
pinMode(b, OUTPUT);  //B
pinMode(c, OUTPUT);  //C
pinMode(d, OUTPUT);  //D
pinMode(e, OUTPUT);  //E
pinMode(f, OUTPUT);  //F
pinMode(g, OUTPUT);  //G
}```
```void displayDigit(int digit)
{
//Conditions for displaying segment a
if(digit!=1 && digit != 4)
digitalWrite(a,HIGH);

//Conditions for displaying segment b
if(digit != 5 && digit != 6)
digitalWrite(b,HIGH);

//Conditions for displaying segment c
if(digit !=2)
digitalWrite(c,HIGH);

//Conditions for displaying segment d
if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(d,HIGH);

//Conditions for displaying segment e
if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(e,HIGH);

//Conditions for displaying segment f
if(digit != 1 && digit !=2 && digit!=3 && digit !=7)
digitalWrite(f,HIGH);
if (digit!=0 && digit!=1 && digit !=7)
digitalWrite(g,HIGH);

}
void turnOff()
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
}

void loop() {```
``` for(int i=0;i<10;i++)
{
displayDigit(i);
delay(1000);
turnOff();
}
}``` Participated in the
Arduino Contest

## 24 People Made This Project!

• • • • • • • • • • See 15 More

## Recommendations

Hello. For the first time here but did in the meanwhile a lot of small projects with clocks.
It seems that there is a fault with the pinlayout of the 7 seg single display. The pinnumbers from 1 to 5 are correct. The upper ones are reversed in the picture (not on the Fritzing picture). The correct upper pinnumbers are from left to right 6, 7, 8, 9, 10
Just now I saw that Shanedon made the correction. Maybe a good idea the correct the picture of the 7seg layout.

int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 9;
int g = 10;
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void displayDigit(int digit)
{
if(digit!=1 && digit != 4)
digitalWrite(f,HIGH);

if(digit != 5 && digit != 6)
digitalWrite(g,HIGH);

if(digit !=2)
digitalWrite(c,HIGH);

if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(d,HIGH);

if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(e,HIGH);

if(digit != 1 && digit !=2 && digit!=3 && digit !=7)
digitalWrite(a,HIGH);
if (digit!=0 && digit!=1 && digit !=7)
digitalWrite(b,HIGH);

}
void turnOff()
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
}

void loop() {
for(int i=0;i<10;i++)
{
displayDigit(i);
delay(1000);
turnOff();
}
}

Thanks for nice instructions! Here is how I would code it:

const int numberPins[] = { 9, 8, 6, 5, 4, 3, 2 };
void setup() {
for(int i = 0; i < 7; i++)
pinMode(numberPins[i], OUTPUT);
turnOff();
}
void displayDigit(int digit)
{
static byte numbers[] = { 95, 18, 47, 59, 114, 121, 125, 19, 127, 123 };
for(int pin = 0; pin < 7; pin++)
{
if(numbers[digit] & (1 << pin))
digitalWrite(numberPins[pin], HIGH);
else
digitalWrite(numberPins[pin], LOW);