-
Notifications
You must be signed in to change notification settings - Fork 2
/
LCD_WS096ext_demo.py
201 lines (163 loc) · 7.09 KB
/
LCD_WS096ext_demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
# ---------------------------------------------------------------------
# LCD_WS096ext_demo.py
# ====================
#
# Samostatna ukazka pouziti tridy LCD_WS096 z modulu "LCD_WS096ext.py".
# V tomto okamziku ( k 25.05.2022 ) ukazuje moznosti rizeni podsviceni
# displeju 0.96'' na deskach spolecnosti Waveshare.
#
# Staci ulozit do Rapberry Pi Pico jako modul "main.py". Modul(y) s naz
# vy "LCD_WS096.py" a "LCD_WS096ext.py" okopirujte samozrejme do RPi Pi
# Pico take. Pokud zmenite jejich nazvy upravte prislusne tomu nazev(y)
# modulu u prikazu IMPORT na zacatku tohoto kodu.
#
# Spoustet lze samostatne jednotlive ukazky nebo tzv. "SlideShow" kdy
# jsou s 2 vterinovymi prodlevami porad dokola spousteny automaticky
# vsechny ukazky obsazene v kodu. Ridi promenne:
#
# SlideShow zapina/vypina rezim "SlideShow"
# SampleNumber cislo ukazky z nabidky v kodu pro individualni spou
# steni (SlideShow = False); v tomto okamziku 1-2
# BoardID oznaceni desky predavane do konstruktoru tridy; pod
# porovana oznaceni:
# "RP2040-LCD-0.96"
# "Pico-LCD-0.96" nebo i treba "PICO-LCD-0.96" atd.
# *je CASE INSENSITIVE a MEZERY na zacatku a konci re
# tezce jsou ODMAZAVANY
#
# *bylo zaroven pouzito v ramci procesu ladeni a testovani me verze tri
# dy "LCD_WS096" z modulu "LCD_WS096ext.py"
#
# vytvoreno: 23.05.2022 (RKu70cz)
# verze: 1.00
# posledni uprava: 25.05.2022 (RKu70cz)
#
# (c) 2022, RKu70cz
# ---------------------------------------------------------------------
import LCD_WS096
import LCD_WS096ext
import time
#
# metoda "DisplayContent1"
# ===============
#
# Z duvodu potreby opakovani vysazeno do samostatne procedury (metody). Pro
# ukazku 1. z tohoto modulu zajistuje zobrazeni testovaciho textu.
#
# Pouziva snad vsechny mozne i nemozne kombinace parametru metody "Text2Row"
# stejne jako predchozi ukazka(y). Lze snadno odvodit vsechny zpusoby jejiho
# pouziti. Od nejjedodussiho az po ty slozitejsi ...
#
# vyuziva nove metody "Text2Row"
# "ClearDisplay"
#
# (c) 2022, RKu70cz
#
def DisplayContent1( intensityBacklight=1000 ):
iBacklightS = str( intensityBacklight )
lcd.ClearDisplay()
lcd.Text2Row("Waveshare LCD 0.96''", 1, NoShow=True)
lcd.Text2Row("--------------------", 2, NoShow=True)
if ( lcd.board == "RP2040-LCD-0.96" ):
lcd.Text2Row("Ahoj RP2040-LCD-0.96!", 4, Color=LCD_WS096.LCD_WS096_GREEN, NoShow=True)
if ( lcd.board == "PICO-LCD-0.96" ):
lcd.Text2Row("Ahoj Pico-LCD-0.96!", 4, Color=LCD_WS096.LCD_WS096_GREEN, NoShow=True)
lcd.Text2Row("DEMO tridy:", 5, Color=LCD_WS096.LCD_WS096_GREEN, NoShow=True)
lcd.Text2Row("'LCD_WS096'", 6, 10, NoShow=True)
lcd.Text2Row("RKu70cz", 8, Color=LCD_WS096.LCD_WS096_BLUE, NoShow=True)
if ( len(iBacklightS) == 3 ):
lcd.Text2Row( iBacklightS, 8, 18, Color=LCD_WS096.LCD_WS096_BLUE, NoShow=True)
if ( len(iBacklightS) == 4 ):
lcd.Text2Row( iBacklightS, 8, 17, Color=LCD_WS096.LCD_WS096_BLUE, NoShow=True)
lcd.Show()
#
# metoda "DisplayContent2"
# ===============
#
# Z duvodu potreby opakovani vysazeno do samostatne procedury (metody). Pro
# ukazku 2. z tohoto modulu zajistuje zobrazeni testovaciho textu.
#
# Pouziva snad vsechny mozne i nemozne kombinace parametru metody "Text2Row"
# stejne jako predchozi ukazka(y). Lze snadno odvodit vsechny zpusoby jejiho
# pouziti. Od nejjedodussiho az po ty slozitejsi ...
#
# vyuziva nove metody "Text2Row"
# "ClearDisplay"
#
# (c) 2022, RKu70cz
#
def DisplayContent2( intensityBacklight=1000 ):
iBacklightS = str( intensityBacklight )
lcd.ClearDisplay(LCD_WS096.LCD_WS096_CYAN)
lcd.Text2Row("Waveshare LCD 0.96''", 1, Color=LCD_WS096.LCD_WS096_BLACK, NoShow=True)
lcd.Text2Row("--------------------", 2, Color=LCD_WS096.LCD_WS096_BLACK, NoShow=True)
if ( lcd.board == "RP2040-LCD-0.96" ):
lcd.Text2Row("Ahoj RP2040-LCD-0.96!", 4, Color=LCD_WS096.LCD_WS096_RED, NoShow=True)
if ( lcd.board == "PICO-LCD-0.96" ):
lcd.Text2Row("Ahoj Pico-LCD-0.96!", 4, Color=LCD_WS096.LCD_WS096_RED, NoShow=True)
lcd.Text2Row("DEMO tridy:", 5, Color=LCD_WS096.LCD_WS096_RED, NoShow=True)
lcd.Text2Row("'LCD_WS096'", 6, 10, Color=LCD_WS096.LCD_WS096_BLACK, NoShow=True)
lcd.Text2Row("RKu70cz", 8, Color=LCD_WS096.LCD_WS096_BLUE, NoShow=True)
if ( len(iBacklightS) == 3 ):
lcd.Text2Row( iBacklightS, 8, 18, Color=LCD_WS096.LCD_WS096_BLUE, NoShow=True)
if ( len(iBacklightS) == 4 ):
lcd.Text2Row( iBacklightS, 8, 17, Color=LCD_WS096.LCD_WS096_BLUE, NoShow=True)
lcd.Show()
#
# ===
#
if __name__=='__main__':
SlideShow = True # False = spusti pouze ukazku definovanou v SampleNumber
# True = spousti automaticky beh se vsemi ukazkami
SampleNumber = 2 # cislo ukazky (1-2) pro rezim kdy SlideShow = False
BoardID = "RP2040-LCD-0.96" # pro desku MCU RP2040 s LCD displejem 0.96''
#BoardID = "Pico-LCD-0.96" # pro desku LCD displeje 0.96'' s tlacitky
# interne osetreno tak, ze je CASE INSENSITIVE
lcd = LCD_WS096ext.LCD_WS096( BoardID )
while True:
# [1.] Ukazka pouziti nove metody "Backlight" - "Ahoj ... neco ...!"
# Pouzit zakladni text z DEMO aplikace v modulu "LCD_WS096_demo.py".
# Na chvili snizi podsviceni na polovinu. Nasledne vrati zpet resp.
# deaktivuje PWM na prislusnem PINu desky.
#
# vyuziva novou metodu "Backlight"
#
if SlideShow or SampleNumber == 1:
lcd.Backlight( 1000 )
DisplayContent1( 1000 )
time.sleep(2)
lcd.Backlight( 500 )
DisplayContent1( 500 )
time.sleep(2)
lcd.Backlight( -1 )
DisplayContent1( 1000 )
if ( SlideShow ):
time.sleep(2)
# [2.] Ukazka pouziti nove metody "Backlight" - "Ahoj ... neco ...!"
# Pouzit zakladni text z DEMO aplikace v modulu "LCD_WS096_demo.py".
# V cyklu po 1 vterine snizuje intenzitu podsviceni az do uplneho vy-
# pnuti a po stejnych krocich zpet.
# Nasledne vrati vse do puvodniho stavu resp. deaktivuje PWM na pri-
# slusnem PINu desky.
#
# vyuziva novou metodu "Backlight"
#
if SlideShow or SampleNumber == 2:
lcd.Backlight( 1000 )
DisplayContent2( 1000 )
i = 1000
while ( i > 0 ):
time.sleep(1)
i = i - 100
lcd.Backlight( i )
DisplayContent2( i )
while ( i <= 1000 ):
lcd.Backlight( i )
DisplayContent2( i )
time.sleep(1)
i = i + 100
lcd.Backlight( -1 )
if ( SlideShow ):
time.sleep(2)
if ( SlideShow != True ):
break