

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!



Binary for the pins:
Shift register pins | QH | QG | QF | QE | QD | QC | QB | QA | Binary number |
7 segment LED pins | a | b | c | d | e | f | g | DP | —- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 00000011 |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 10011111 |
2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 00001101 |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 00001101 |
4 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 10011001 |
5 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 01001001 |
6 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 01000001 |
7 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 00011111 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 00000001 |
9 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 00011001 |