0% found this document useful (0 votes)
10 views13 pages

Arduino Hexadecimal Display Project

The document outlines a Grade 12 Computer Engineering project where the objective is to design and program a circuit using an Arduino Uno to display hexadecimal digits on a 7-segment LED display. It includes details on the equipment used, wiring diagrams, Arduino code, and an analysis of the project, highlighting the learning outcomes and reflections on the experience. The project emphasizes the integration of circuit design and programming while providing references for further research.

Uploaded by

kabab3770
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views13 pages

Arduino Hexadecimal Display Project

The document outlines a Grade 12 Computer Engineering project where the objective is to design and program a circuit using an Arduino Uno to display hexadecimal digits on a 7-segment LED display. It includes details on the equipment used, wiring diagrams, Arduino code, and an analysis of the project, highlighting the learning outcomes and reflections on the experience. The project emphasizes the integration of circuit design and programming while providing references for further research.

Uploaded by

kabab3770
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Grade 12 Computer Engineering

Table of Contents
1. Objective ........................................... Page 1
2. Equipment ....................................... Page 1
3. Diagrams & Tables ........................ Page 2
4. Arduino Sketch Program ............. Page 3
5. Analysis .............................................. Page 4
6. Reflection .......................................... Page 5
7. References ......................................... Page 6
Culminating Project: Summative Activity

Muhammad Ahmed

Sir John A. MacDonald Collegiate


Institute

June 13, 2025


1. Objective
The objective of this project is to design, build, and program a circuit using an Arduino Uno
to display hexadecimal digits (0–F) on a 7-segment LED display. The program will show
numbers first in ascending order and then in descending order. This task integrates circuit
design, understanding of input/output components, and programming control systems.

2. Equipment
- Arduino Uno Microcontroller

- Breadboard

- Jumper wires

- 7 x 1kΩ resistors

- 1 x 7-segment common cathode LED display

- Wire stripper

- Plier

- Diagonal cutter

- Screwdriver

- Fritzing software (for circuit diagram)

- Internet access (for research)


3. Diagrams & Tables
The following diagram shows how to wire the 7-segment display to the Arduino Uno:

Arduin
A9 A8 A7 A6 A5 A4 A3 A2
o
Display dp g f e d c b a HEX
KLD-3401CR-1P
9 13 12 4 10 12 14 1
0 0 0 1 1 1 1 1 1 3F
1 0 0 0 0 0 1 1 0 06
2 0 0 1 1 1 1 1 0 3E
3 0 1 1 0 1 1 1 0 6E
4 0 1 1 0 1 1 0 1 6D
5 0 1 1 0 1 0 1 1 6B
6 0 1 1 1 1 0 1 1 7B
7 0 1 0 0 0 1 1 0 46
8 0 1 1 1 1 1 1 1 7F
9 0 1 1 0 1 1 1 1 6F
A 0 1 1 1 0 1 1 1 77
b 0 1 1 1 1 0 0 1 79
C 0 0 0 1 1 0 1 1 1B
d 0 1 1 1 1 1 0 0 7C
E 0 0 1 1 1 0 1 1 3B
F 0 0 1 1 0 0 1 1 33
4. Arduino Sketch (Code)

void setup() {

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

void loop() {

int time=2000;

//0

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//1

delay(time);
digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//2

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);

digitalWrite(8, LOW);

//3

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);
digitalWrite(8, HIGH);

digitalWrite(9, HIGH);

//4

delay(time);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//5

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, LOW);

digitalWrite(8, HIGH);

//6

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);
digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, LOW);

digitalWrite(8, HIGH);

//7

delay(time);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//8

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);
//9

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//A

delay(time);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//B

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);
digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, HIGH);

//C

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

//D

delay(time);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

//E

delay(time);
digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

//F

delay(time);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, HIGH);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

5. Analysis
In this project, I connected a 7-segment display to the Arduino Uno using 7 digital output
pins. Each pin controls one segment (a–g) of the display. Using binary representations, I
mapped out how each hexadecimal digit (0–F) is displayed. I used an array to store the
binary codes and a function to display each digit.

The program first loops from 0 to 15 to display digits in ascending order, then loops from
15 to 0 for descending order. A 500ms delay between each digit makes it easy to see.
6. Reflection
This project helped me better understand how microcontrollers interact with real-world
electronic components. Writing code for efficiency made me think critically about how to
use arrays and loops. I also learned the importance of wiring accurately and debugging both
software and hardware issues.

If I had more time, I would improve the display by adding a second digit for a full two-digit
hexadecimal display (e.g., 0F, 10).

7. References
Arduino. (n.d.). Arduino Documentation. [Link]

Circuit Basics. (2015). How to Use a 7-Segment Display with an Arduino.


[Link]

Adafruit. (n.d.). 7-Segment Display Tutorial. [Link]

You might also like