Display technologies are one of the most visible parts of an electronics project. A display can show sensor values, menu settings, status messages, graphics, animations, warnings or decorative effects.
This article gives an overview of the most common display types used in Arduino, ESP32, Raspberry Pi Pico and embedded projects, including LCD, OLED, ePaper, 7-segment LED displays, LED dot-matrix displays and addressable LED matrices.
LCD Displays
LCD stands for Liquid Crystal Display. LCDs do not create light by themselves. They control how much light passes through the display, which is why many LCD modules use a backlight.
LCDs are available in many different forms:
- Character LCDs such as 16x2 and 20x4 modules
- Monochrome graphic LCDs
- Color TFT LCD displays
- Small SPI displays for microcontroller projects
- Larger parallel displays for faster graphics
LCDs are very common because they are inexpensive, widely supported and available in many sizes.
Character LCDs
Character LCDs are among the easiest displays to use. Typical versions have 2 lines with 16 characters or 4 lines with 20 characters.
Most character LCDs use an HD44780-compatible controller.
- Common sizes: 16x2 and 20x4
- Usually 5V logic on classic modules
- Can be connected directly in parallel mode
- Often used with an I2C backpack adapter
- Good for text, menus, measurements and status messages
A character LCD is a good choice when a project only needs readable text and does not require graphics.
Graphic LCD Displays
Graphic LCDs allow pixels to be controlled individually. This makes it possible to show icons, graphs, simple images, custom fonts and user interfaces.
Common controllers include:
- ST7567 for monochrome graphic LCDs
- ST7920 for larger monochrome graphic LCDs
- ST7735 for small color TFT displays
- ST7789 for modern small color TFT displays
- GC9A01 for round color TFT displays
- SPFD5408 for larger parallel TFT modules
Graphic LCDs are more flexible than character LCDs, but they also need more memory, more code and usually faster communication.
OLED Displays
OLED stands for Organic Light Emitting Diode. Unlike LCDs, OLED pixels create their own light. This means OLED displays do not need a backlight.
Small OLED modules are very popular in Arduino and ESP32 projects.
- Very high contrast
- Good readability in dark environments
- No backlight required
- Available with I2C or SPI interface
- Common resolutions include 128x32 and 128x64
Common OLED controller chips include SSD1306, SSD1309 and SH1106.
OLED displays are excellent for compact projects, sensor readouts, small menus and status screens.
ePaper Displays
ePaper displays, also called electronic paper displays, are designed to look more like printed paper than a traditional screen.
Their most important feature is that they can keep an image visible without continuous power.
- Very low power consumption when the image does not change
- Excellent readability in bright light
- No backlight on most modules
- Slow refresh compared with LCD or OLED
- Not ideal for animation or fast-changing data
ePaper displays are useful for labels, price tags, low-power sensor stations, clocks, badges and information panels.
7-Segment LED Displays
7-segment displays are made from LED segments arranged to show numbers and a few letters.
They are simple, bright and easy to read from a distance.
- Ideal for numbers
- Common in clocks, counters and measurement displays
- Available as single digits or multi-digit modules
- Usually require a driver chip for practical use
- Can be red, green, blue, white or other colors
7-segment displays are not good for full text, but they are excellent for numeric values such as time, voltage, temperature, speed or counts.
LED Dot-Matrix Displays
LED dot-matrix displays use a grid of individual LEDs. Instead of fixed number segments, they can show letters, symbols, simple graphics and scrolling text.
Common driver chips include MAX7219, TM1640 and IS31FL3731.
- Good for scrolling text
- Can display simple icons and symbols
- Brighter than many LCD or OLED displays
- Usually need multiplexing or a driver chip
- Power consumption depends heavily on brightness and number of lit LEDs
The CANABLOX CX-LEDMX-MH module uses the IS31FL3731 driver to control a 9x16 LED matrix through I2C.
WS2812B Addressable LED Matrices
WS2812B LEDs are individually addressable RGB LEDs. Each LED contains red, green and blue LEDs plus a small controller chip.
They are available as strips, rings and matrices.
- Each LED can have its own color
- Only one data signal is needed
- Common formats include 1x8, 4x4 and 8x8
- Useful for effects, indicators, icons and decorative displays
- Can require significant current at high brightness
WS2812B matrices are not traditional text displays, but they are very useful when color, animation and visual effects are more important than fine detail.
Display Interfaces
Displays can use different electrical interfaces. The interface affects wiring, speed, library support and the number of microcontroller pins required.
- I2C: simple wiring, only two signal lines, usually slower
- SPI: faster than I2C, commonly used for OLED and TFT displays
- Parallel: uses more pins, but can be faster for larger displays
- Single-wire data: used by WS2812B addressable LEDs
For small text and status displays, I2C is often convenient. For color graphics, SPI is usually the better choice. Parallel interfaces are useful when a display needs higher refresh speed and the microcontroller has enough available pins.
Typical Display Comparison
| Display Type | Best For | Common Interface | Power Use | Strengths | Limitations |
|---|---|---|---|---|---|
| Character LCD | Text, menus, status messages | Parallel, I2C adapter | Low to medium, depending on backlight | Simple, cheap, easy to read | No graphics, limited characters |
| Graphic LCD | Pixels, icons, basic graphics | SPI, parallel | Low to medium | Good for custom screens | Needs graphics library and more memory |
| TFT LCD | Color graphics, menus, UI screens | SPI, parallel | Medium, often backlight-dominated | Full color, many sizes | Backlight current, more code complexity |
| OLED | Small high-contrast displays | I2C, SPI | Depends on number of lit pixels | Excellent contrast, no backlight | Usually small, possible image wear over time |
| ePaper | Low-power static information | SPI | Very low when static | Keeps image without power, sunlight-readable | Slow refresh, not for animation |
| 7-Segment LED | Numbers, clocks, counters | Driver chip, I2C, SPI | Medium to high | Bright, simple, readable from distance | Poor for text and graphics |
| LED Dot Matrix | Scrolling text, icons, symbols | I2C, SPI, custom driver | Medium to high | Bright and flexible | Limited resolution, needs multiplexing |
| WS2812B Matrix | RGB effects, indicators, animations | Single-wire data | Can be high | Full-color effects with simple wiring | Timing-sensitive, needs strong power supply |
Which Display Should You Use?
- Simple text and menus: character LCD
- Small low-cost status screen: OLED
- Color graphics: TFT LCD
- Static low-power information: ePaper
- Large readable numbers: 7-segment LED display
- Scrolling text or simple symbols: LED dot-matrix display
- Color effects and decorative indicators: WS2812B LEDs
Important Practical Notes
- Check whether the display uses 3.3V or 5V logic
- Use level shifting when connecting 5V and 3.3V systems
- Backlights and LEDs can use much more current than the controller chip
- OLED and graphic displays may need significant RAM for framebuffers
- SPI displays are usually better for fast graphics than I2C displays
- Always check the controller chip before selecting a software library
Conclusion
There is no single best display for every project. A simple 16x2 LCD may be perfect for a menu, while an OLED is better for a compact sensor display. A TFT LCD is useful for color graphics, an ePaper display is ideal for low-power static information, and LED displays are excellent when brightness and visibility matter.
The best display choice depends on what the project needs to show, how often the information changes, how much power is available and which interface the microcontroller can support.
