The Best DIY STEM Tutorials and Projects

7 segment display counter

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.

Electronic-Dice_Componnets.
Sr #Item NameQuantity
1Arduino Uno1
2Breadboard1
37 Segment display1
4M-F Jumper wires11
5Resistors2
6Push button1
7Arduino cable1

Wiring Diagram

Here is a Complete Wiring Diagram along with Instructions for this Project

Electronic-Dice_Circuit-diagram

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 .!

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *