Selecting the Right Display for My Project
When I select a display for my application, certainly the most important question is: “What do I want to show?”
The answer to this question needs to consider a few points regarding the displayed information. There is the option to show only text, or embedded graphics. The graphics could be fixed symbols or dynamic images. The amount of information also defines the size of the display and the resolution. The readability based on the amount of sunlight, the viewing angle, and distance are also important factors to consider.
If I’m just displaying numbers, it could be enough to choose one of the many available 7-segment displays, in either LED or LCD technology. They look a bit old school, but they have good readability and are very easy to control. Unfortunately, text is limited to only a few possible characters on these displays. To show the whole alphabet, a 14- or 16-segment display would be necessary. These are also available in LED or LCD technology. These displays are mostly offered without an integrated controller, meaning I’m responsible for the driving, timing, and refreshing of the display in the application. Thankfully, a broad variety of display drivers are available, or maybe I can adapt them for use with a microcontroller. Fortunately, there are 7-segment LED displays with internal drivers available. These intelligent LEDs can be addressed via a shift register, eliminating the need for driving and refreshing the LEDs. Another solution for using 7- or 14-segment displays would be addressable versions that are controlled via I2C, SPI, or UART.
Figure 1: LCD graphic display with touchscreen functionality
One more way to display text would be with dot-matrix displays, also available as LED or LCD displays. Depending on the character count, these displays very often have an integrated display controller. This controller takes care of the driving, timing, and refreshing of the display. Typically, I can program them via a serial or parallel interface. Drivers and libraries for the controllers are usually available, while some are already integrated with Linux. With this software support, writing text to the display becomes similar to using a print command.
Limitations with all of these approaches are the resolution of the text, as well as the selection of the font and size. Some dot-matrix display controllers provide the ability to load different fonts into the controller. However, the resolution or size can only be changed by using a different display.
Graphic displays, such as in Figure 1, offer the best possibilities for different fonts and sizes. It’s also easier to have different colors on the same screen and to display icons or pictures. Most graphic displays are LCDs. These LCDs often have a display controller integrated that takes care of the driving, refreshing, and timing. I can typically transfer my pictures via different serial or parallel connection interfaces. Or maybe I can use a LVDS connection that I can directly connect the display to my microprocessor.
In selecting the connection interface, I should not only think about the voltage level and timing constraints, but equally about the software integration. Actually, this should be considered for all displays.
Graphic displays can also be built with LED matrix displays, even in color. Another option for LED displays would be to use intelligent LEDs. These intelligent LEDs are available unmounted to create a custom LED matrix, or as a mounted matrix with different row and column configurations.
Selecting the right display for my project is not always easy, but being clear about the requirements is helping a lot. The right display can save a lot of time during the whole development process and make the user interaction a positive experience.