University of Information Technology and Sciences
Department of CSE
Complex Engineering Project
Course Code CSE0612216S
Course Title Digital Logic Design Lab
Project No. 01
Project Title Home Security System(via alarm)
Submission Date 04/06/25
Submitted by: Submitted to:
Name : sayeed zubayer mahmud
ID No : 0432410005101115 Name: Ratri Datta
Lecturer, Dept. of CSE, UITS
Batch : CSE-55th
Section : C1
1. Introduction
Problem Statement
A seven-segment display is a widely used electronic component for displaying numerical digits (0-9) and some
alphabetic characters. Each segment consists of an LED that can be individually controlled to form different
digits. The challenge is to design a circuit using an Arduino microcontroller to correctly illuminate the segments
to display numbers from 0 to 9.
Objectives
• To understand the working principle of a seven-segment display.
• To design a circuit that interfaces a seven-segment display with an Arduino.
• To write an Arduino program to control the display of digits (0-9).
• To simulate and verify the circuit using Tinkercad.
Arduino Code:
• Define segment pins in an array.
• Create a lookup table (array) for each digit’s segment configuration.
• Loop through digits 0-9 with a delay between each.
• Sample Arduino Code (Common Cathode):
3. Circuit Diagram
Pin Connections:
Arduino Pin Seven-Segment
Pin
2 a
3 b
4 c
5 d
6 e
7 f
8 g
4. Design Approach
Truth Table (Common Cathode)
Each digit (0-9) requires specific segments to be turned ON (1) or OFF (0).
5. Implementation (Code Explanation)
Arduino Code:
unsigned const int A = 13;
unsigned const int B = 12;
unsigned const int C = 11;
unsigned const int D = 10;
unsigned const int E = 9;
unsigned const int F = 8;
unsigned const int G = 7;
unsigned const int H = 6;
void setup(void)
{
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(H, OUTPUT);
}
//My Functions
void zero(void)
{ digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void one(void)
{ digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void two(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(H, LOW);
}
void three(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void four(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void five(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void six(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void seven(void)
{ digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void eight(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
void nine(void)
{ digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(H, LOW);
}
// Start void
loop(void)
{ zero();
delay(1000);
one();
delay(1000);
two();
delay(1000);
three();
delay(1000);
four();
delay(1000);
five();
delay(1000);
six();
delay(1000);
seven();
delay(1000);
eight();
delay(1000);
nine();
delay(1000);
}
6. Simulation Results Observations:
• The seven-segment display successfully cycles through digits 0-9.
• Each digit is displayed clearly with the correct segments lit. Output Screenshots:
7. Conclusion
Challenges Faced:
• Incorrect wiring initially caused some segments not to light up.
• Had to adjust resistor values to ensure proper brightness.
Learning Outcomes:
• Gained hands-on experience in interfacing a seven-segment display with Arduino.
• Learned how to use truth tables for digital logic control.
• Improved skills in circuit simulation using Tinkercad. Future Improvements:
• Use a shift register to reduce the number of Arduino pins used.
• Implement a 4-digit seven-segment display for more complex applications.