Seven segment displays are a classic component used in electronics projects to display numbers and text. To control these displays, you need a specialized driver IC that can take a binary input and convert it to signals for each segment of the display. In this article, we’ll look at some common seven segment driver ICs, how to wire them up, and example projects you can create.
Overview of Seven Segment Displays
Seven segment displays get their name from having seven LED segments arranged in the shape of an 8. By lighting up different combinations of the seven segments, you can display all the decimal digits 0 through 9. Some seven segment displays also include an eighth LED for the decimal point.
Seven segment display (Image: SparkFun)
The seven segments are arranged as follows:
- A – Top horizontal segment
- B – Top right vertical segment
- C – Bottom right vertical segment
- D – Bottom horizontal segment
- E – Bottom left vertical segment
- F – Top left vertical segment
- G – Middle horizontal segment
To light up any particular digit, the correct combination of segments needs to be illuminated. For example, to display the number 2, segments A, B, G, E, and D would be turned on.
Common Seven Segment Driver ICs
To control a seven segment display in your project, you need a driver IC that can take a binary input value and convert it to signals for lighting up the right segments. Here are some common ICs used for this purpose:
CD4511 Decimal Decoder/Driver
The CD4511 is a CMOS IC containing a BCD (binary-coded decimal) to 7-segment latch/decoder/driver. It takes a 4-bit BCD value as input and drives the corresponding 7-segment display outputs. Some features:
- Directly drives LED and LCD displays
- Includes on-chip latch for storage
- Has active LOW outputs
- Wide operating voltage range from 3-15V
CD4511 pinout (Image: electronics-tutorials.ws)
To use the CD4511, provide the 4-bit BCD input on pins 11-14, supply voltage to pin 5, ground to pin 10, and connect the seven segment pins 1-7 to the matching pins on the display. The decimal point output on pin 8 can optionally be connected as well.
MC14511 Decimal Decoder/Driver
Similar to the CD4511, the MC14511 also takes a 4-bit BCD value and drives a 7-segment display. Key features:
- BCD input with latched outputs
- High current outputs can drive LEDs directly
- Wide operating voltage range from 5-15V
MC14511 pinout (Image: learningaboutelectronics.com)
The required connections are the same as the CD4511 – 4-bit BCD to pins 1-4, power and ground to pins 8 and 10, and segment outputs to pins 11-17. The MC14511 makes it easy to drive high-current LEDs without external transistors.
TM1637 7-Segment Display Driver
The TM1637 is a LED driver chip designed specifically for 7-segment displays. It communicates via a 2-wire I2C-like protocol, which means you can control multiple TM1637’s using just two microcontroller pins. Key features:
- I2C communication interface
- Built-in oscillator and clock generator
- Brightness control via PWM
- Scanning display for multiplexed operation
- 3.3-5V compatible
TM1637 pinout (Image: lastminuteengineers.com)
The TM1637 makes wiring 7-segment displays very easy. Simply connect pins 1 and 2 to the I2C clock and data pins on your microcontroller, connect the power and ground pins, and hook up the segment outputs. With two additional pins, you can also drive multiple displays in a chain.
Wiring Up a Seven Segment Display
Using the TM1637 as an example, here is how you would typically wire up a seven segment display:
Typical seven segment wiring
The four connections required are:
- VCC – Power supply voltage, typically 5V
- GND – Ground
- CLK – Clock input to TM1637
- DIO – Data input to TM1637
The seven segment pins for a-g and decimal point connect directly to the corresponding pins on the display. If the display has a common cathode, you may need to wire all the cathodes together instead.
Once wired up, you can communicate with the TM1637 using a simple protocol to set the digit value and brightness. Many microcontroller libraries exist to make this even easier.
Here are some example projects you can create using seven segment displays and driver ICs:
A classic project is building a digital clock that displays the time on four seven segment displays. One display each for the hours, minutes, and seconds, plus an additional display for AM/PM.
You would need four TM1637 display drivers. The microcontroller would keep track of the time and update each display by writing the digit values and blinking the colon between hours and minutes.
Since seven segment displays are designed to show hex digits, you can create a counter that increments through hexadecimal numbers visually.
Use a CD4511 or MC14511 to drive the display. Connect the outputs to four momentary pushbuttons wired as inputs to the microcontroller. Advancing the counter by 1 will simply require showing the next hex digit on the display.
Battery Voltage Meter
Measure the voltage of a battery and display the volt level on a seven segment display.
Use the analog-to-digital converter (ADC) of a microcontroller to measure the battery voltage. Convert the ADC value to a voltage, scale it to the desired resolution, and display the digit on a TM1637 driver.
This allows creating a simple battery volt meter without needing a volt meter IC.
Simulate the roll of a die by displaying a random number 1-6 on a seven segment display. Pressing a button triggers the “roll”.
Generate a random number in code and display the number on the segment driver. Or sequentially increase from 1-6 with each button press, rolling back to 1 after 6.
Frequently Asked Questions
What is the difference between common anode and common cathode displays?
Common anode displays have all the segment anodes connected together and a separate cathode for each segment. Common cathode is the reverse, where all the cathodes are common and each segment has a separate anode. Driver ICs will be designed for one type or the other.
Can I control a seven segment display directly from a microcontroller?
Yes, you can bit-bang the segment outputs with a microcontroller without other driver ICs. However, this takes more pins and code. Standalone driver chips simplify the interface and free up microcontroller resources.
How do I control multiple seven segment displays?
There are two main techniques:
Multiplexing displays rapidly so they appear lit continuously. Each display is powered in turn.
Use a separate driver chip for each display. All are controlled in parallel by the microcontroller to show consistent values.
Multiplexing uses less wires but can make the displays appear to flicker. Using multiple drivers has a higher hardware cost but displays solidly.
Can seven segment displays show alphabetic characters?
Yes, with some limitations. Characters like “P” and “O” are straightforward. But some letters like “X” may be indistinguishable. Alphanumeric displays can show a wider range of letters and symbols clearly.
What logic voltage levels do seven segment displays require?
Many common displays and driver ICs work at 5V logic levels. But there are also components available for 3.3V logic. Pay attention to the voltage ranges when mixing components – logic level shifting may be required in some cases.
How do I choose the right resistor value for my LED segments?
Determine your supply voltage and LED segment forward voltage from their datasheets. Then use Ohm’s law to calculate the resistor required to limit current to a safe level (often 10-20mA per LED). R = (Vsupply – Vforward) / Idesired