User manual
7) PYTHON SCRIPT for PI LCD, PART 4:
########################################################################
#
# LCD4: Learning how to control an LCD module from Pi
#
#
#
#
# See w8bh.net for more information.
#
########################################################################
import time #for timing delays
import RPi.GPIO as GPIO
import random
#OUTPUTS: map GPIO to LCD lines
LCD_RS = 7 #GPIO7 = Pi pin 26
LCD_E = 8 #GPIO8 = Pi pin 24
LCD_D4 = 17 #GPIO17 = Pi pin 11
LCD_D5 = 18 #GPIO18 = Pi pin 12
LCD_D6 = 27 #GPIO21 = Pi pin 13
LCD_D7 = 22 #GPIO22 = Pi pin 15
OUTPUTS = [LCD_RS,LCD_E,LCD_D4,LCD_D5,LCD_D6,LCD_D7]
#HD44780 Controller Commands
CLEARDISPLAY = 0x01
RETURNHOME = 0x02
RIGHTTOLEFT = 0x04
LEFTTORIGHT = 0x06
DISPLAYOFF = 0x08
CURSOROFF = 0x0C
CURSORON = 0x0E
CURSORBLINK = 0x0F
CURSORLEFT = 0x10
CURSORRIGHT = 0x14
LOADSYMBOL = 0x40
SETCURSOR = 0x80
#Line Addresses.
LINE = [0x00,0x40,0x14,0x54] #for 20x4 display
battery = [
[ 0x0E, 0x1B, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1F ], #0% (no charge)
[ 0x0E, 0x1B, 0x11, 0x11, 0x11, 0x11, 0x1F, 0x1F ], #17%
[ 0x0E, 0x1B, 0x11, 0x11, 0x11, 0x1F, 0x1F, 0x1F ], #34%
[ 0x0E, 0x1B, 0x11, 0x11, 0x1F, 0x1F, 0x1F, 0x1F ], #50% (half-full)
[ 0x0E, 0x1B, 0x11, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F ], #67%
[ 0x0E, 0x1B, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F ], #84%
[ 0x0E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F ], #100% (full charge)
]
patterns = [
[ 0x15, 0x0A, 0x15, 0x0A, 0x15, 0x0A, 0x15, 0x0A ], #50%
[ 0x0A, 0x15, 0x0A, 0x15, 0x0A, 0x15, 0x0A, 0x15 ], #alt 50%
[ 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15 ], #3 vbars
[ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ],
[ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ],
[ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ],
[ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ],