]>
git.gir.st - RaspiRouter.git/blob - usr/bin/disp
3 # modified version if this tutorial's demo script (German):
4 # http://www.schnatterente.net/technik/raspberry-pi-32-zeichen-hitachi-hd44780-display
8 import RPi
.GPIO
as GPIO
9 GPIO
.setwarnings(False)
11 # Zuordnung der GPIO Pins (ggf. anpassen)
19 DISPLAY_WIDTH
= 16 # Zeichen je Zeile (colums per line)
20 DISPLAY_LINE_1
= 0x80 # Adresse der ersten Display Zeile
29 GPIO
.setmode(GPIO
.BCM
)
30 GPIO
.setup(DISPLAY_E
, GPIO
.OUT
)
31 GPIO
.setup(DISPLAY_RS
, GPIO
.OUT
)
32 GPIO
.setup(DISPLAY_DATA4
, GPIO
.OUT
)
33 GPIO
.setup(DISPLAY_DATA5
, GPIO
.OUT
)
34 GPIO
.setup(DISPLAY_DATA6
, GPIO
.OUT
)
35 GPIO
.setup(DISPLAY_DATA7
, GPIO
.OUT
)
39 # my screen is internally wired as a 2x8, so that's that bodge.
40 if len (sys
.argv
) > 1:
41 mystring
= sys
.argv
[1].ljust (8, " ")
42 lcd_byte (DISPLAY_LINE_1
, DISPLAY_CMD
)
43 lcd_string (mystring
[0:8])
44 lcd_byte (DISPLAY_LINE_2
, DISPLAY_CMD
)
45 lcd_string (mystring
[8:16])
49 lcd_byte(0x33,DISPLAY_CMD
)
50 lcd_byte(0x32,DISPLAY_CMD
)
51 lcd_byte(0x28,DISPLAY_CMD
)
52 lcd_byte(0x0C,DISPLAY_CMD
)
53 lcd_byte(0x06,DISPLAY_CMD
)
54 lcd_byte(0x01,DISPLAY_CMD
)
56 def lcd_string(message
):
57 message
= message
.ljust(DISPLAY_WIDTH
," ")
58 for i
in range(DISPLAY_WIDTH
):
59 lcd_byte(ord(message
[i
]),DISPLAY_CHR
)
61 def lcd_byte(bits
, mode
):
62 GPIO
.output(DISPLAY_RS
, mode
)
63 GPIO
.output(DISPLAY_DATA4
, False)
64 GPIO
.output(DISPLAY_DATA5
, False)
65 GPIO
.output(DISPLAY_DATA6
, False)
66 GPIO
.output(DISPLAY_DATA7
, False)
68 GPIO
.output(DISPLAY_DATA4
, True)
70 GPIO
.output(DISPLAY_DATA5
, True)
72 GPIO
.output(DISPLAY_DATA6
, True)
74 GPIO
.output(DISPLAY_DATA7
, True)
76 GPIO
.output(DISPLAY_E
, True)
78 GPIO
.output(DISPLAY_E
, False)
80 GPIO
.output(DISPLAY_DATA4
, False)
81 GPIO
.output(DISPLAY_DATA5
, False)
82 GPIO
.output(DISPLAY_DATA6
, False)
83 GPIO
.output(DISPLAY_DATA7
, False)
85 GPIO
.output(DISPLAY_DATA4
, True)
87 GPIO
.output(DISPLAY_DATA5
, True)
89 GPIO
.output(DISPLAY_DATA6
, True)
91 GPIO
.output(DISPLAY_DATA7
, True)
93 GPIO
.output(DISPLAY_E
, True)
95 GPIO
.output(DISPLAY_E
, False)
98 if __name__
== '__main__':