A simple library for controlling JHD128X64E GLCDs
Project description
128x64 Graphical LCD Display
A simple library for JHD128x64E GLCD, this GLCD consists 2 KS0108 chip which developed by Samsung electronics is a LCD driver LSl with 64 channel output for dot matrix liquid crystal graphic display system. It has the internal display RAM for storing the display data transferred from a 8 bit microcontroller and generates the dot matrix Liquid crystal driving signals corresponding to stored data. This library can display all Alphabets in English language both CAPS and small, numbers from 0 to 9 and standard special characters.
Resources
- For datasheets of JHD128x64E and KS0108 please refer Docs
Hardware support
- Raspberry Pi Zero W
- Raspberry Pi 3 B+
- Raspberry Pi 4
Limitations:
- Cannot display any kind of images
- Does not support display other than JHD128X64E GLCD
- No scroll option available
- Tested only with Raspberry Pi
Installation
To install the library just type:
pip install glcd-jhd128x64
Available methods
- Pinmap
GLCD = glcd_jhd128x64e.KS0108(rs=4, rw=7, en=8, d0=9, d1=10,
d2=11, d3=14, d4=15, d5=17,
d6=18, d7=25, chip_set0=22,
chip_set1=23, reset=24)
Here the pin numbers can be changed for the user's convenience.
- Initialization
GLCD.start()
This function is used to initialize display, it sends command to turn ON display and clears the memory.
- Setting cursor position
GLCD.set_cursor()
This function takes 3 arguments which are: chip to be used, line from where data is to be displayed and from which column the data must be displayed.
- Line selection
GLCD.go_to_line()
This function takes one argument where the user can specify from which line data is to be displayed.
- Shift to next line
GLCD.go_to_nextline()
This function will shift to next line and display the data.
- Display data
GLCD.print_str()
This function will display string or integer or character on the display.
- Display a character
GLCD.print_chr()
This function will display a character on the display
Usage examples
- In this example, a string and a character is displayed on the GLCD continuously starting chip 0, line 0 and cursor 0
import glcd_jhd128x64e
def main():
GLCD = glcd_jhd128x64e.KS0108(rs=4, rw=7, en=8, d0=9, d1=10,
d2=11, d3=14, d4=15, d5=17,
d6=18, d7=25, chip_set0=22,
chip_set1=23, reset=24)
GLCD.start()
GLCD.set_cursor(0, 0, 0)
GLCD.print_str("Hello! How are you")
GLCD.print_chr("?")
if __name__ == "__main__":
main()
- In this example DTH11 sensor data is displayed on GLCD, The sentence will be written on line 0, 1, 2 using both the chips, temperature is displayed on line 3 of chip 0 and humidity is displayed on line 3 of chip 1
import glcd_jhd128x64e
import Adafruit_DHT
import time
def main():
GLCD = glcd_jhd128x64e.KS0108(rs=4, rw=7, en=8, d0=9, d1=10,
d2=11, d3=14, d4=15, d5=17,
d6=18, d7=25, chip_set0=22,
chip_set1=23, reset=24)
hum, temp = Adafruit_DHT.read_retry(11, 26)
time.sleep(2)
GLCD.start()
while True:
GLCD.set_cursor(0, 0, 0)
GLCD.print_str("This example will display\nTemperature and humidity")
GLCD.go_to_nextline()
GLCD.print_str("from DHT11 sensor")
GLCD.set_cursor(0, 3, 0)
GLCD.print_str("Temp: ")
GLCD.print_str(temp)
GLCD.print_chr("C")
GLCD.set_cursor(1, 3, 0)
GLCD.print_str("Hum: ")
GLCD.print_str(hum)
GLCD.print_chr("%")
GLCD.set_cursor(0, 1, 0)
if __name__ == "__main__":
main()
Note: While displaying dynamic data the function used to set cursor potion and to display data must be in while loop, " \n" will shift the data to the next line in display.
Main references
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.