This project is a continuation of the Build Raspberry Pi Controller series.
LEDs are used as direct replacements for incandescent light bulbs because of advantages like less heat dissipation and long life expectancy. Besides being a light source, LEDs are flexible enough to be used in marquees for displaying messages. Letters and numbers can easily be created using seven segment LED displays using a simple wiring scheme obtained from the optoelectronic component's datasheet. To create multi-letter messages using alphanumeric characters (letter - number combinations), a technique of operating each seven segment LED digit with an electronic driver circuit is needed. This technique of operating each seven segment LED digit with an electronic driver circuit is called multiplexing. Although seven segment LED displays are energy efficient and easy to use, a major problem for the optoelectronic component in sunlight is washout.
The liquid crystal display (LCD) was developed to remove heat and washout. Also, LCDs allow a variety of characters and complex graphics to be created as well. In this project, you will investigate the LCD using the Raspberry Pi. The Raspberry Pi will allow simple text messages to be displayed on an LCD using the Python programming language. You will use the Adafruit LCD library to experiment with the RPi LCD controller to display simple text messages.
Before we begin our hands-on investigation of LCDs, let's find out how they work. The LCD is traditionally used to show data, graphics, or both on electrified glass plates. Typical LCD parts consist of a controller and a glass substrate material. LCD segments mounted on the glass substrate material are operated by an electronic controller that consists of a microprocessor or microcontroller.
The LCD's crystal segments are placed between glass plates with electrodes. In order for the crystal segments to form letters or characters, a small AC RMS voltage is needed. The AC RMS voltage turns on the crystal segments.The electronic device responsible for managing this electrified voltage for the crystal segments is the LCD controller. To assure the timing sequences to turn on or off the crystal segments are correct, a microprocessor or microcontroller is used inside of the LCD controller. Typical LCD controllers used to operate the crystal segments are the HD44780 and KS0066 devices. LCDs come a variety of column-row versions such as 8x1,16x1, 20x 2, and 20 x4. The display unit you will be using for this project is the standard 16 x 2 LCD.
Now that we have basic knowledge of the LCD, you are ready to begin building the RPi LCD controller.
RMS is the abbreviation for Root Mean Square which is a continuously concentric varying signal. RMS is usually associated with AC voltage and current in electrical circuits.
Additional information on LCDs and OLEDs (Organic Light Emitting Diodes) can be found in the book Arduino Electronics Blueprints.
Building a RPi LCD Controller
Like the previous RPi projects in this series, you will build the LCD controller using a few electrical-electronic components. The solderless breadboard is an indispensable prototyping tool for building electronic projects and will be used to wire the LCD to the RPi. Also, you will wire a potentiometer (either a 10Kilohm or 100Kilohm) to the LCD to adjust the display's contrast as well.
Testing the RPi LCD Controller's Electrical Wiring
With the RPi LCD controller completely wired on the solderless breadboard, you are now ready to electrical test the device. To test the LCD controller's electrical wiring is basically to power up the RPi and adjust the display's contrast using the potentiometer. You may see a series of square blocks, this depends on the potentiometer's setting.
Adding the Adafruit LCD Python Code
You are one step away to having a fully functional LCD controller. All that remains is to add the Adafruit LCD Python code to the RPi to display messages on it. The LCD python code is part of the Adafruit Raspberry Pi example software bundle. The HD44780 is an electronic controller typically used with LCDs. Therefore, the example bundle will include a software library to operate the LCD controller properly. The software bundle can be obtained from Github. Note, the Adafruit LCD python code is not a usual library like most RPi software bundles. Therefore, you must download the software files in a specific order. To obtain the files in the correct order, you may open the LXTerminal and type the Linux command~sudo apt-get install git.
Now that you have a working LCD controller, let's have some fun with this awesome device by way of basic design modifications. Here are two challenges for you to explore your LCD controller further.