Introduction to Seven Segment Displays
What is a Seven Segment Display?
A seven segment display is a cool electronic component that can show numbers using
seven individual LED segments arranged in a figure
figure-8
8 shape. It's like having a digital number
display you can control with code!
Types of Seven Segment Displays
Common Anode Display
● All LED segments share a POSITIVE (5V) connection
● Turn segments ON by sending a LOW (0V) signal
● So, common pins are connected with positive or 5v.
● Good for Arduino projects with PNP transistors
Common Cathode Display
● All LED segments share a NE
NEGATIVE (GND) connection
● Turn segments ON by sending a HIGH (5V) signal or digital pin
● So, common pins are connected with negative or ground.
● Most common in Arduino projects.
Circuit Connection Guide
Pin Mapping
● Pin A: Top horizontal segment
● Pin B: Top-right vertical segment
● Pin C: Bottom-right vertical segment
● Pin D: Bottom horizontal segment
● Pin E: Bottom-left vertical segment
● Pin F: Top-left vertical segment
● Pin G: Middle horizontal segment
● Decimal Point (Optional): Extra segment for decimal numbers
Arduino Code Explanation
int pinA = 2;
int pinB = 3;
int pinC = 4;
int pinD = 5;
int pinE = 6;
int pinF = 7;
int pinG = 8;
int t = 1000;
void setup() {
// put your setup code here, to run once:
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
// 0
digitalWrite(pinA , 1);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 1);
digitalWrite(pinE , 1);
digitalWrite(pinF , 1);
digitalWrite(pinG , 0);
delay(t);
// 1
digitalWrite(pinA , 0);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 0);
digitalWrite(pinE , 0);
digitalWrite(pinF , 0);
digitalWrite(pinG , 0);
delay(t);
// 2
digitalWrite(pinA , 1);
digitalWrite(pinB , 1);
digitalWrite(pinC , 0);
digitalWrite(pinD , 1);
digitalWrite(pinE , 1);
digitalWrite(pinF , 0);
digitalWrite(pinG , 1);
delay(t);
// 3
digitalWrite(pinA , 1);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 1);
digitalWrite(pinE , 0);
digitalWrite(pinF , 0);
digitalWrite(pinG , 1);
delay(t);
// 4
digitalWrite(pinA , 0);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 0);
digitalWrite(pinE , 0);
digitalWrite(pinF , 1);
digitalWrite(pinG , 1);
delay(t);
// 5
digitalWrite(pinA , 1);
digitalWrite(pinB , 0);
digitalWrite(pinC , 1);
digitalWrite(pinD , 1);
digitalWrite(pinE , 0);
digitalWrite(pinF , 1);
digitalWrite(pinG , 1);
delay(t);
// 6
digitalWrite(pinA , 1);
digitalWrite(pinB , 0);
digitalWrite(pinC , 1);
digitalWrite(pinD , 1);
digitalWrite(pinE , 1);
digitalWrite(pinF , 1);
digitalWrite(pinG , 1);
delay(t);
// 7
digitalWrite(pinA , 1);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 0);
digitalWrite(pinE , 0);
digitalWrite(pinF , 0);
digitalWrite(pinG , 0);
delay(t);
// 8
digitalWrite(pinA , 1);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 1);
digitalWrite(pinE , 1);
digitalWrite(pinF , 1);
digitalWrite(pinG , 1);
delay(t);
// 9
digitalWrite(pinA , 1);
digitalWrite(pinB , 1);
digitalWrite(pinC , 1);
digitalWrite(pinD , 1);
digitalWrite(pinE , 0);
digitalWrite(pinF , 1);
digitalWrite(pinG , 1);
delay(t);
}
Tinkercad Simulation Instructions
1. Open Tinkercad Circuits
2. Drag and drop Arduino board
3. Add seven segment display
4. Connect display pins to Arduino digital pins
5. Upload the provided code
6. Run the simulation
7 segment circuit connection (no coding )(common anode)
7 segment circuit connection (with coding )(common cathode)
Suggested Experiments
1. Change display timing
2. Create custom number patterns
3. Add button to cycle numbers
4. Explore decimal point usage