The Best DIY STEM Tutorials and Projects

OVERVIEW
A 7-segment display is a simple electronic component used to show numbers and some letters. It has seven LEDs arranged in a pattern to form digits when turned on in different combinations. This project explains how a 7-segment display works, how to control it, and where it is used in everyday devices like clocks, counters, and digital meters! 🔢✨
You can follow this video and the instructions below.
Video
Components Required
Here is a list of Components that we will need to make this Project.

Sr # | Item Name | Quantity |
---|---|---|
1 | Arduino Uno | 1 |
2 | Breadboard | 1 |
3 | 7 Segment display | 1 |
4 | M-F Jumper wires | 11 |
5 | Resistors | 2 |
6 | Push button | 1 |
7 | Arduino cable | 1 |
Wiring Diagram
Here is a Complete Wiring Diagram along with Instructions for this Project

Program / Code
Code is Explained in the Comments of the Code
const int segPins[] = {1, 2, 3, 4, 5, 6, 7}; // Segments A-G const int dpPin = 8; // Decimal point pin const int buttonPin = 10; // Push button pin int count = 0; bool lastButtonState = HIGH; void setup() { for (int i = 0; i < 7; i++) { pinMode(segPins[i], OUTPUT); } pinMode(dpPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); // Use internal pull-up resistor } void loop() { int buttonState = digitalRead(buttonPin); if (buttonState == LOW && lastButtonState == HIGH) { count = (count + 1) % 10; // Increment count and wrap around at 10 delay(50); // Debounce delay } lastButtonState = buttonState; displayNumber(count); delay(100); // Update interval } void displayNumber(int num) { switch (num) { case 0: // Display 0 digitalWrite(segPins[0], HIGH); digitalWrite(segPins[1], HIGH); digitalWrite(segPins[2], HIGH); digitalWrite(segPins[3], HIGH); digitalWrite(segPins[4], HIGH); digitalWrite(segPins[5], HIGH); digitalWrite(segPins[6], LOW); digitalWrite(dpPin, HIGH); // DP break; case 1: digitalWrite(segPins[0], LOW); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], LOW); // D digitalWrite(segPins[4], LOW); // E digitalWrite(segPins[5], LOW); // F digitalWrite(segPins[6], LOW); // G digitalWrite(dpPin, HIGH); // DP break; case 2: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], LOW); // C digitalWrite(segPins[3], HIGH); // D digitalWrite(segPins[4], HIGH); // E digitalWrite(segPins[5], LOW); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; case 3: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], HIGH); // D digitalWrite(segPins[4], LOW); // E digitalWrite(segPins[5], LOW); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; case 4: digitalWrite(segPins[0], LOW); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], LOW); // D digitalWrite(segPins[4], LOW); // E digitalWrite(segPins[5], HIGH); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; case 5: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], LOW); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], HIGH); // D digitalWrite(segPins[4], LOW); // E digitalWrite(segPins[5], HIGH); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; case 6: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], LOW); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], HIGH); // D digitalWrite(segPins[4], HIGH); // E digitalWrite(segPins[5], HIGH); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; case 7: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], LOW); // D digitalWrite(segPins[4], LOW); // E digitalWrite(segPins[5], LOW); // F digitalWrite(segPins[6], LOW); // G digitalWrite(dpPin, HIGH); // DP break; case 8: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], HIGH); // D digitalWrite(segPins[4], HIGH); // E digitalWrite(segPins[5], HIGH); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; case 9: digitalWrite(segPins[0], HIGH); // A digitalWrite(segPins[1], HIGH); // B digitalWrite(segPins[2], HIGH); // C digitalWrite(segPins[3], HIGH); // D digitalWrite(segPins[4], LOW); // E digitalWrite(segPins[5], HIGH); // F digitalWrite(segPins[6], HIGH); // G digitalWrite(dpPin, HIGH); // DP break; } }
Thank you so much for going through our tutorial, we hope it was easy to follow and you enjoyed it, please share your feedback and pictures of the project (if you have made it) in the comments below .!