Using Arduino to control 8 segment display

8 segment LED display front and back view, you can get them at your radio shack and electronics hobby store. This is a common anode display
Arduino pin to display pin are as follows: pin2 to A, pin3 to B, pin4 to C, pin5 to D, pin6 to E, pin7 to F, pin8 to G.
DP pin and bottom COM pin not used.
Vin is 3.3v.

Below is the code for the Arduino sketch.

void num0(){
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,HIGH);
}

void num1(){
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,HIGH);
}

void num2(){
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,HIGH);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,HIGH);
  digitalWrite(8,LOW);
  
}

void num3(){
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,LOW);
}

void num4(){
  digitalWrite(2,HIGH);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
}

void num5(){
  digitalWrite(2,LOW);
  digitalWrite(3,HIGH);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,HIGH);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
}

void num6(){
  digitalWrite(2,LOW);
  digitalWrite(3,HIGH);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
}

void num7(){
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);
}

void num8(){
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
}

void num9(){
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
}

void setup() {
  // put your setup code here, to run once:

  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

  num0();
  delay(1000);
  num1();
  delay(1000);
  num2();
  delay(1000);
  num3();
  delay(1000);
  num4();
  delay(1000);
  num5();
  delay(1000);
  num6();
  delay(1000);
  num7();
  delay(1000);
  num8();
  delay(1000);
  num9();
  delay(1000);
}

A short clip…

‐——————————————————————————–

Using serial in parallel out shift register (MC74HC595AN) to connect 7 segment LED to Arduino

Using a shift register, you only need to use 3 digital pins on the Arduino compared to 7 pins (without shift register). Therefore you free up 4 pins!

Shift register pins configuration
Shift register pins to 7 segment LED
Wiring diagram for 7 segment LED, shift register and Arduino

Binary for the pins:

Shift register pinsQHQGQFQEQDQCQBQABinary number
7 segment LED pinsabcdefgDP—-
00000001100000011
11001111110011111
20000110100001101
30000110100001101
41001100110011001
50100100101001001
60100000101000001
70001111100011111
80000000100000001
90001100100011001
As the LED is a common anode, 0 at the pin will ‘ON’ the LED