adnexo-GmbH / python_lcd

Python based library for talking to character based LCDs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lcd and i2c_lcd

Python code for talking to character based LCDs.

The I2c_Lcd class allows for talking to i2c based LCDs. There are also variants of the code for MicroPython. All of the files which start with pyb were tested on the pyboard.

Files

File Description
lcd.py Core logic
i2c_lcd.pyb Linux I2C HAL
pyb_gpio_lcd.py Pyboard GPIO HAL
pyb_gpio_lcd_test8.py Pyboard test using 8-bit GPIO
pyb_gpio_lcd_test.py Pyboard test using 4-bit GPIO
pyb_i2c_adafruit_lcd.py Pyboard I2C HAL for Adafruit backpack
pyb_i2c_adafruit_lcd_test.py Test for Adafruit backpack
pyb_i2c_lcd.py Pyboard I2C HAL for PCF8574 backpack
pyb_i2c_lcd_test.py Test for PCF8574 backpack
nodemcu_gpio_lcd.py NodeMCU GPIO HAL
nodemcu_gpio_lcd_test.py NodeMCU test using 4-bit GPIO
pycom_i2c_lcd.py Pycom boards I2C HAL for PCF8574 backpack

The files which end in _test.py are examples which show how the corresponding file is used.

i2c_lcd.py was tested on a BeagleBone Black using a 2 x 16 LCD with an i2c module similar to this one.

This code was adapted from some C code that I had written previously for the AVR.

To install on your BBB:

git clone https://github.com/dhylands/python_lcd.git
cd python_lcd
sudo pip install -e .

And to test:

sudo lcd/i2c_lcd.py

Since my LCD was a 5v device, I used a level converter to convert from BBB's 3.3v to the LCD's 5v.

I put together some [photos here] (https://picasaweb.google.com/115853040635737241756/PythonI2CLCD?authkey=Gv1sRgCLyZoJ3_uPjiXA)

Coming from the BeagleBone Black the wire colors are:

Color  Pin   Name
------ ----- ------
Black  P9-1  GND
Red    P9-3  3.3v
Orange P9-7  SYS_5V
Yellow P9-19 SCL
White  P9-20 SDA

The photo shows Orange connected to P9-5. I discovered that P9-7 is controlled by the onboard voltage regulators, so when you do a "sudo poweroff" then SYS_5V drops to 0v when the BBB is powered off. P9-5 (VDD_5V) remains at 5v after the BBB is powered off.

And the colors going to the LCD are:

Color  Name
------ ----
Black  GND
Red    5v
White  SDA
Yellow SCL

I used a SparkFun level shifter (this particular model is no longer available).

Some examples of other level shifters which could be used:

I found a circuit mentioned in this Google+ post and thought I would include it here, since it's related to the LCDs these drivers interface with. LCD Schematic

The circuit allows for digitally controlling the contrast via PWM and also controlling the backlight brightness via PWM.

About

Python based library for talking to character based LCDs.

License:MIT License


Languages

Language:Python 100.0%