1
- from machine import Pin
1
+ from machine import Pin , ADC
2
2
3
3
from util import singleton
4
4
from utime import sleep_us
@@ -15,6 +15,8 @@ def __init__(self, scheduler):
15
15
self .sdi = Pin (11 , Pin .OUT )
16
16
self .clk = Pin (10 , Pin .OUT )
17
17
self .le = Pin (12 , Pin .OUT )
18
+
19
+ self .ain = ADC (26 )
18
20
19
21
self .row = 0
20
22
self .count = 0
@@ -23,12 +25,17 @@ def __init__(self, scheduler):
23
25
self .disp_offset = 2
24
26
self .initialise_fonts ()
25
27
self .initialise_icons ()
26
-
27
- # CPU freq needs to be increase to 250 for better results
28
- self .backlight_sleep = [10 , 100 , 500 , 1000 , 1500 ] # From 10 (low) to 1500(High)
29
- self .current_backlight = 4
30
28
31
- scheduler .schedule ("enable-leds" , 1 , self .enable_leds )
29
+ self .scheduler = scheduler
30
+
31
+ # CPU freq needs to be increase to 250 for better results
32
+ self .backlight_sleep = [10 , 100 , 500 , 1500 ] # From 10 (low) to 1500(High)
33
+ self .current_backlight = 3
34
+ self .auto_backlight = True
35
+ self .show_icon ("AutoLight" )
36
+ self .update_auto_backlight_value (None )
37
+ self .scheduler .schedule ("enable-leds" , 1 , self .enable_leds )
38
+ self .scheduler .schedule ("update_auto_backlight_value" , 1000 , self .update_auto_backlight_value )
32
39
33
40
def enable_leds (self , t ):
34
41
self .count += 1
@@ -99,11 +106,30 @@ def sidelight_off(self):
99
106
self .leds [0 ][5 ] = 0
100
107
101
108
def switch_backlight (self ):
102
- if self .current_backlight == 4 :
109
+ if self .auto_backlight :
110
+ self .auto_backlight = False
111
+ self .hide_icon ("AutoLight" )
103
112
self .current_backlight = 0
113
+ self .scheduler .remove ("update_auto_backlight_value" )
114
+ elif self .current_backlight == 3 :
115
+ self .show_icon ("AutoLight" )
116
+ self .auto_backlight = True
117
+ self .update_auto_backlight_value (None )
118
+ self .scheduler .schedule ("update_auto_backlight_value" , 1000 , self .update_auto_backlight_value )
104
119
else :
105
120
self .current_backlight += 1
106
121
122
+ def update_auto_backlight_value (self , t ):
123
+ aim = self .ain .read_u16 ()
124
+ if aim > 60000 : # Low light
125
+ self .current_backlight = 0
126
+ elif aim > 58000 :
127
+ self .current_backlight = 1
128
+ elif aim > 10000 :
129
+ self .current_backlight = 2
130
+ else :
131
+ self .current_backlight = 3
132
+
107
133
def print (self ):
108
134
for row in range (0 , 8 ):
109
135
for pos in range (0 , 24 ):
0 commit comments