A Python 3/2 Raspberry PI Character LCD library for the Hitachi HD44780 controller. It supports both GPIO (parallel) mode as well as boards with an I2C port expander (e.g. the PCF8574).
This library is inspired by Adafruit Industries' CharLCD library as well as by Arduino's LiquidCrystal library.
No external dependencies (except the RPi.GPIO
library, which comes
preinstalled on Raspbian) are needed to use this library.
You can install RPLCD directly from PyPI using pip:
$ sudo pip install RPLCD
If you want to use I2C, you also need smbus:
$ sudo apt install python-smbus
You can also install the library manually without pip. Either just copy the
scripts to your working directory and import them, or download the repository
and run python setup.py install
to install it into your Python package
directory.
- Simple to use API
- Support for both 4 bit and 8 bit modes
- Support for both parallel and I²C connection
- Support for custom characters
- Support for backlight control circuits
- Python 2/3 compatible
- Caching: Only write characters if they changed
- No external dependencies (except RPi.GPIO)
These things may get implemented in the future, depending on my free time and motivation:
- MicroPython port
You can find the documentation here: https://readthedocs.org/projects/rplcd/
To test your 20x4 display, please run the test_20x4.py
script and
confirm/verify each step with the enter key. If you don't use the standard
wiring, make sure to add your pin numbers to the CharLCD
constructor in
test_20x4.py
.
To test a 16x2 display, proceed as explained above, but use the test_16x2.py
script instead.
There are also unit tests. First, install dependencies:
pip install -U -r requirements-dev.txt
Then run the tests:
py.test -v
PEP8 via flake8 with max-line-width
set to 99 and
E126-E128,C901
ignored:
flake8 --max-line-length=99 --ignore=E126,E127,E128,C901 RPLCD/lcd.py
- TC2004A-01 Data Sheet: http://www.adafruit.com/datasheets/TC2004A-01.pdf
- HD44780U Data Sheet: http://www.adafruit.com/datasheets/HD44780.pdf
This code is licensed under the MIT license, see the LICENSE file or tldrlegal for more information.
The module RPLCD/enum.py
is (c) 2004-2013 by Barry Warsaw. It was
distributed as part of the flufl.enum
package under the LGPL License version
3 or later.