The 2 line LCD display.
A 2 line LCD display can be used to display simple information. When using an ADC to read voltages it can be used to show the results implementing like this a simple voltmeter.
The display is driven by a HD44780 display driver from Hitachi. The
data sheet explains all the details of this controller. The controller can be directly accessed through GPIO lines, which however requires quite a bit of cabling. The other possibility is to pass through a
pcf8574 I2C I/O expander, in which case only the I2C connections SCL, SDA, Vcc and GND are needed.
|
|
The 2 line LCD display |
Its I2C interface |
The blue potentiometer you see on the
I2C interface is used to control the display contrast.
When developing the access library I saw that the programs failed in ~ 20% of the cases, while re-running the same binary again would make it work. The contrast was very bad also and I had to turn the contrast potentiometer to maximum in order to see the text.
When switching from 3.3V power to 5V power however, all these problems went away.
The HD44780 can operate in 2 modes:
- a 8-bit mode in which all 8 interface bits are used as data and additional I/O lines are used as backlight control, R/W, strobe and register select lines.
- a 4-bit mode where the data bits are transferred in 2 successive cycles on the upper 4 data lines (D4-D7) while the lower 4 bits are used to drive the control lines
Our I2C interface uses the 4-bit mode and is connected as follows:
The display can be used in a multitude of applications. When running with the realtime clock for example it may display date and time while when running with the
PCF8591 ADC it may show an input voltage and in this way transform our Raspberry Pi into a simple voltmeter. The left value is an 8 bit hex value directly read from the ADC while the second is the value converted into Volts under the condition that the PCF8591 is connected to Vcc=3.3V.
The source code of the library allowing access to the hd44780 via the pcf8574 is attached to this page (hd44780.tar.gz)
--
Uli Raich - 2017-02-01
Comments