Extra 5% OFF Use Code: OL05
Free Shipping over ₹999

ESP32 7 Segment Display (1 Digit) with Arduino IDE

Introduction

A 7-segment display is used to show numeric digits using 7 LEDs (segments) labeled a–g.
Each segment is controlled individually to display numbers from 0 to 9.
Available in Common Cathode or Common Anode types.
In this tutorial, we’ll connect and control a 1-digit 7-segment display using the ESP32.

Required Components

  • ESP32 Board
  • 7 Segment Display
  • 220 Ohm Resistor (8 Pcs)
  • Jumper wires
  • Breadboard

Pinout

Circuit Diagram / Wiring

  • Segment (a) → ESP32 GPIO 23
  • Segment (b) → ESP32 GPIO 22
  • Segment (c) → ESP32 GPIO 21
  • Segment (d) → ESP32 GPIO 19
  • Segment (e) → ESP32 GPIO 18
  • Segment (f) → ESP32 GPIO 5
  • Segment (g) → ESP32 GPIO 4
  • Segment (DP) → ESP32 GPIO 15
  • Segment (GND) → ESP32 GND
  • Use 220Ω resistors between each segment pin and the Arduino to limit current.

Code / Programming

// Define ESP32 GPIO pins connected to segments a-g
const int a = 23;
const int b = 22;
const int c = 21;
const int d = 19;
const int e = 18;
const int f = 5;
const int g = 5;

// Segment patterns for digits 1 to 9 (0 = ON for Common Cathode)
byte digits[10][7] = {
  // a, b, c, d, e, f, g
  {1, 1, 1, 1, 1, 1, 0},  // 0
  {0, 1, 1, 0, 0, 0, 0},  // 1
  {1, 1, 0, 1, 1, 0, 1},  // 2
  {1, 1, 1, 1, 0, 0, 1},  // 3
  {0, 1, 1, 0, 0, 1, 1},  // 4
  {1, 0, 1, 1, 0, 1, 1},  // 5
  {1, 0, 1, 1, 1, 1, 1},  // 6
  {1, 1, 1, 0, 0, 0, 0},  // 7
  {1, 1, 1, 1, 1, 1, 1},  // 8
  {1, 1, 1, 1, 0, 1, 1}   // 9
};

// Store segment pins in an array
const int segmentPins[7] = {a, b, c, d, e, f, g};

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
}

void loop() {
  for (int i = 1; i <= 9; i++) {
    displayDigit(i);
    delay(1000);
  }
}

// Function to display a digit
void displayDigit(int num) {
  for (int i = 0; i < 7; i++) {
    digitalWrite(segmentPins[i], digits[num][i]);
  }
}

Explanation

  • A 7-segment display uses seven individual LEDs (a–g) to form numeric digits.
  • The ESP32 controls each segment through digital GPIO pins to display numbers from 1 to 9.
  • This project demonstrates how to light up each digit sequentially using a common cathode display.

Troubleshooting

  • If segments are not lighting correctly, double-check wiring and pin assignments.
  • For dim or no display, ensure resistors are properly rated (e.g., 220Ω) and common cathode is grounded.
  • If using a common anode display, invert the HIGH/LOW logic in digitalWrite().

    Leave a Reply

    Your email address will not be published.

    Need Help?