Zum Hauptteil springen

wokwi-7segment Reference

Seven segment LED display

Pin names

NameDescription
ATop segment
BTop-right segment
CBottom-right segment
DBottom segment
EBottom-left segment
FTop-left segment
GMiddle segment
DPDot LED
COMCommon pin*
DIG1Digit 1 pin*
DIG2Digit 2 pin*
DIG3Digit 3 pin*
DIG4Digit 4 pin*
CLNColon pin (optional)

* COM is the common pin for a single digit 7-segment display. For multi digit displays, use DIG1…DIG4.

With the default common attribute setting of anode, the segment pins (A…G, DP, CLN) are connected to the cathode (negative side) of the LEDS, and the common pins (COM, DIG1…DIG4) are connected to the anode (positive side) of the LEDs. Segments are lit by driving their pins low. Setting common to cathode reverses this behavior, with the segment pins turning on when high.

The segment mapping is as follows:

7-segment display segment mapping

And the digit mapping:

7-segment display digit mapping

Attributes

NameDescriptionDefault value
commonThe common pin: "cathode" or "anode""anode"
digitsNumber of digits: "1", "2", "3" or "4""1"
colonSet to "1" to show the colon (clock mode)""
colorThe color of the segment LEDs"red"

Examples

ResultAttrs
{ "color": "green" }
{ "color": "#d040d0" }
{ "digits": "2" }
{ "digits": "4" }
{ "digits": "4", "colon": "1" }

Using the 7-segment display

For a single digit, you'll need 8 microcontroller GPIO pins. Each pin should be connected to a single segment through a resistor, and the common pin should be connected to 5V (or GND if you are using the common cathode variant). You can spare one pin (DP) if you don't use the dot LED. Turn a segment on by driving the corresponding segment on (or HIGH for the common cathode variant).

For multiple digits, you'll need 8 microcontroller pins for the segments and the dot plus one extra microcontroller pin for each digit. So if you have 4 digits, you'll need 12 microcontroller pins in total. Controlling the display in this mode is a bit tricky, as you'll need to continuously alternate between the different digits.

Luckily, there are libraries that can help:

  • On Arduino: Use the SevSeg library.
  • On the Raspberry Pi Pico: The PIO peripheral can take care of refreshing the display for you. See the examples below.

If you are out of microcontroller pins, consider using a 74HC595 Shift Register to drive the display.

Simulator examples