Seven segment LED display
|DIG1||Digit 1 pin*|
|DIG2||Digit 2 pin*|
|DIG3||Digit 3 pin*|
|DIG4||Digit 4 pin*|
|CLN||Colon pin (optional)|
* COM is the common pin for a single digit 7-segment display. For multi digit displays, use DIG1…DIG4.
By default, the segment pins (A…G, DP, CLN) are connected to the anode (positive side) of the LEDS, and the common pins (COM, DIG1…DIG4) are connected to the cathode (negative side) of the LEDs. You can set the "common" attribute to "cathode" to reverse this behavior.
The segment mapping is as follows:
And the digit mapping:
|common||The common pin: "cathode" or "anode"||"anode"|
|digits||Number of digits: "1", "2", "3" or "4"||"1"|
|colon||Set to "1" to show the colon (clock mode)||""|
|color||The color of the segment LEDs||"red"|
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.