1
|
1 import time
|
|
2 import random
|
|
3 from machine import Pin, PWM, SPI
|
|
4 from ST7735 import TFT, TFTColor
|
|
5 from sysfont import sysfont
|
|
6
|
|
7
|
|
8 class Display:
|
|
9 def __init__(self):
|
|
10 self.lcd_backlight = PWM(Pin(17), freq=20000, duty=1023)
|
|
11 self.backlight_level = 0 # to 100
|
|
12 self.spi = SPI(1,
|
|
13 baudrate=20000000,
|
|
14 polarity=0,
|
|
15 phase=0,
|
|
16 sck=Pin(5),
|
|
17 mosi=Pin(18))
|
|
18 self.tft = TFT(
|
|
19 self.spi,
|
|
20 aDC=19,
|
|
21 aReset=16, # not connected
|
|
22 aCS=21)
|
|
23 self.tft.rotation(2)
|
|
24 self.tft.initr()
|
|
25 self.tft.rgb(True)
|
|
26
|
|
27 self.tft.fill(TFT.BLACK)
|
|
28 # for x in range(0, self.tft.size()[0], 6):
|
|
29 # self.tft.line((0, 0), (x, self.tft.size()[1] - 1),
|
|
30 # TFTColor(random.randrange(0, 256),
|
|
31 # random.randrange(0, 256),
|
|
32 # random.randrange(0, 256)))
|
|
33 def startupText(self, row, msg):
|
|
34 y1 = (row + 1) * 10
|
|
35 self.tft.fillrect((0, y1), (128, 10), TFT.BLACK)
|
|
36 self.tft.text((3, y1), msg, TFT.WHITE, sysfont)
|
|
37
|
|
38 def backlight(self, new, step_sec=0.005):
|
|
39 v = self.backlight_level
|
|
40 while v != new:
|
|
41 v = v + (-1 if v > new else (1 if v < new else 0))
|
|
42 self.lcd_backlight.duty(v * 10)
|
|
43 self.backlight_level = v
|
|
44 time.sleep(step_sec)
|
|
45
|