|
1 | 1 | from machine import Pin, SPI
|
2 | 2 | import framebuf
|
| 3 | +import math |
3 | 4 | import time
|
4 | 5 |
|
5 | 6 | DC = 8
|
@@ -102,6 +103,117 @@ def restart_display():
|
102 | 103 |
|
103 | 104 | oled.fill(0x0000)
|
104 | 105 | oled.show()
|
| 106 | + |
| 107 | +def show_time(hour, minute, second): |
| 108 | + hour_0 = hour % 10 |
| 109 | + hour_1 = math.floor(hour / 10) |
| 110 | + minute_0 = minute % 10 |
| 111 | + minute_1 = math.floor(minute / 10) |
| 112 | + second_0 = second % 10 |
| 113 | + second_1 = math.floor(second / 10) |
| 114 | + print(f"{hour_1}{hour_0}:{minute_1}{minute_0}:{second_1}{second_0}") |
| 115 | + |
| 116 | + if hour_1 == 0: |
| 117 | + oled.fill_rect(3, 16, 4, 14, oled.white) |
| 118 | + if hour_1 == 0 or hour_1 == 1: |
| 119 | + oled.fill_rect(15, 34, 4, 14, oled.white) |
| 120 | + if hour_1 == 0 or hour_1 == 2: |
| 121 | + oled.fill_rect(7, 12, 8, 4, oled.white) |
| 122 | + oled.fill_rect(3, 34, 4, 14, oled.white) |
| 123 | + oled.fill_rect(7, 48, 8, 4, oled.white) |
| 124 | + if hour_1 == 0 or hour_1 == 1 or hour_1 == 2: |
| 125 | + oled.fill_rect(15, 16, 4, 14, oled.white) |
| 126 | + if hour_1 == 2: |
| 127 | + oled.fill_rect(7, 30, 8, 4, oled.white) |
| 128 | + |
| 129 | + if hour_0 in [0, 2, 3, 5, 6, 7, 8, 9]: |
| 130 | + oled.fill_rect(27, 12, 8, 4, oled.white) |
| 131 | + if hour_0 in [0, 4, 5, 6, 8, 9]: |
| 132 | + oled.fill_rect(23, 16, 4, 14, oled.white) |
| 133 | + if hour_0 in [0, 1, 2, 3, 4, 7, 8, 9]: |
| 134 | + oled.fill_rect(35, 16, 4, 14, oled.white) |
| 135 | + if hour_0 in [2, 3, 4, 5, 6, 8, 9]: |
| 136 | + oled.fill_rect(27, 30, 8, 4, oled.white) |
| 137 | + if hour_0 in [0, 2, 6, 8]: |
| 138 | + oled.fill_rect(23, 34, 4, 14, oled.white) |
| 139 | + if hour_0 in [0, 1, 3, 4, 5, 6, 7, 8, 9]: |
| 140 | + oled.fill_rect(35, 34, 4, 14, oled.white) |
| 141 | + if hour_0 in [0, 2, 3, 5, 6, 8, 9]: |
| 142 | + oled.fill_rect(27, 48, 8, 4, oled.white) |
| 143 | + |
| 144 | + oled.fill_rect(43, 29, 4, 4, oled.white) |
| 145 | + oled.fill_rect(43, 35, 4, 4, oled.white) |
| 146 | + |
| 147 | + if minute_1 in [0, 2, 3, 5, 6, 7, 8, 9]: |
| 148 | + oled.fill_rect(55, 12, 8, 4, oled.white) |
| 149 | + if minute_1 in [0, 4, 5, 6, 8, 9]: |
| 150 | + oled.fill_rect(51, 16, 4, 14, oled.white) |
| 151 | + if minute_1 in [0, 1, 2, 3, 4, 7, 8, 9]: |
| 152 | + oled.fill_rect(63, 16, 4, 14, oled.white) |
| 153 | + if minute_1 in [2, 3, 4, 5, 6, 8, 9]: |
| 154 | + oled.fill_rect(55, 30, 8, 4, oled.white) |
| 155 | + if minute_1 in [0, 2, 6, 8]: |
| 156 | + oled.fill_rect(51, 34, 4, 14, oled.white) |
| 157 | + if minute_1 in [0, 1, 3, 4, 5, 6, 7, 8, 9]: |
| 158 | + oled.fill_rect(63, 34, 4, 14, oled.white) |
| 159 | + if minute_1 in [0, 2, 3, 5, 6, 8, 9]: |
| 160 | + oled.fill_rect(55, 48, 8, 4, oled.white) |
| 161 | + |
| 162 | + if minute_0 in [0, 2, 3, 5, 6, 7, 8, 9]: |
| 163 | + oled.fill_rect(75, 12, 8, 4, oled.white) |
| 164 | + if minute_0 in [0, 4, 5, 6, 8, 9]: |
| 165 | + oled.fill_rect(71, 16, 4, 14, oled.white) |
| 166 | + if minute_0 in [0, 1, 2, 3, 4, 7, 8, 9]: |
| 167 | + oled.fill_rect(83, 16, 4, 14, oled.white) |
| 168 | + if minute_0 in [2, 3, 4, 5, 6, 8, 9]: |
| 169 | + oled.fill_rect(75, 30, 8, 4, oled.white) |
| 170 | + if minute_0 in [0, 2, 6, 8]: |
| 171 | + oled.fill_rect(71, 34, 4, 14, oled.white) |
| 172 | + if minute_0 in [0, 1, 3, 4, 5, 6, 7, 8, 9]: |
| 173 | + oled.fill_rect(83, 34, 4, 14, oled.white) |
| 174 | + if minute_0 in [0, 2, 3, 5, 6, 8, 9]: |
| 175 | + oled.fill_rect(75, 48, 8, 4, oled.white) |
| 176 | + |
| 177 | + if second_1 in [0, 2, 3, 5, 6, 7, 8, 9]: |
| 178 | + oled.fill_rect(97, 24, 6, 4, oled.white) |
| 179 | + if second_1 in [0, 4, 5, 6, 8, 9]: |
| 180 | + oled.fill_rect(93, 28, 4, 8, oled.white) |
| 181 | + if second_1 in [0, 1, 2, 3, 4, 7, 8, 9]: |
| 182 | + oled.fill_rect(103, 28, 4, 8, oled.white) |
| 183 | + if second_1 in [2, 3, 4, 5, 6, 8, 9]: |
| 184 | + oled.fill_rect(97, 36, 6, 4, oled.white) |
| 185 | + if second_1 in [0, 2, 6, 8]: |
| 186 | + oled.fill_rect(93, 40, 4, 8, oled.white) |
| 187 | + if second_1 in [0, 1, 3, 4, 5, 6, 7, 8, 9]: |
| 188 | + oled.fill_rect(103, 40, 4, 8, oled.white) |
| 189 | + if second_1 in [0, 2, 3, 5, 6, 8, 9]: |
| 190 | + oled.fill_rect(97, 48, 6, 4, oled.white) |
| 191 | + |
| 192 | + if second_0 in [0, 2, 3, 5, 6, 7, 8, 9]: |
| 193 | + oled.fill_rect(115, 24, 6, 4, oled.white) |
| 194 | + if second_0 in [0, 4, 5, 6, 8, 9]: |
| 195 | + oled.fill_rect(111, 28, 4, 8, oled.white) |
| 196 | + if second_0 in [0, 1, 2, 3, 4, 7, 8, 9]: |
| 197 | + oled.fill_rect(121, 28, 4, 8, oled.white) |
| 198 | + if second_0 in [2, 3, 4, 5, 6, 8, 9]: |
| 199 | + oled.fill_rect(115, 36, 6, 4, oled.white) |
| 200 | + if second_0 in [0, 2, 6, 8]: |
| 201 | + oled.fill_rect(111, 40, 4, 8, oled.white) |
| 202 | + if second_0 in [0, 1, 3, 4, 5, 6, 7, 8, 9]: |
| 203 | + oled.fill_rect(121, 40, 4, 8, oled.white) |
| 204 | + if second_0 in [0, 2, 3, 5, 6, 8, 9]: |
| 205 | + oled.fill_rect(115, 48, 6, 4, oled.white) |
| 206 | + |
| 207 | +def show_time_and_date(hour, minute, second, year, month, day): |
| 208 | + time_string = f"{hour:02}:{minute:02}:{second:02}" |
| 209 | + print(time_string) |
| 210 | + oled.text("Time:", 10, 10, oled.white) |
| 211 | + oled.text(time_string, 10, 20, oled.white) |
| 212 | + |
| 213 | + date_string = f"{day:02}.{month:02}.{year}" |
| 214 | + print(date_string) |
| 215 | + oled.text("Date:", 10, 35, oled.white) |
| 216 | + oled.text(date_string, 10, 45, oled.white) |
105 | 217 |
|
106 | 218 | def start_display():
|
107 | 219 | oled.fill(0x0000)
|
@@ -152,28 +264,21 @@ def start_display():
|
152 | 264 | oled.text("Hello World!", 16, 29, oled.black)
|
153 | 265 | oled.show()
|
154 | 266 |
|
155 |
| -def toggle_screensaver(display_on): |
| 267 | +def toggle_display_mode(): |
156 | 268 | oled.fill(0x0000)
|
157 | 269 | oled.show()
|
158 | 270 |
|
159 |
| -def update_display(hour, minute, second, year, month, day, display_on): |
160 |
| - if display_on: |
161 |
| - start_time = time.ticks_ms() |
162 |
| - |
163 |
| - oled.fill(0x0000) |
| 271 | +def update_display(hour, minute, second, year, month, day, display_mode): |
| 272 | + start_time = time.ticks_ms() |
164 | 273 |
|
165 |
| - time_string = f"{hour:02}:{minute:02}:{second:02}" |
166 |
| - date_string = f"{day:02}.{month:02}.{year}" |
| 274 | + oled.fill(0x0000) |
167 | 275 |
|
168 |
| - print(time_string) |
169 |
| - print(date_string) |
| 276 | + if display_mode == 0: |
| 277 | + show_time_and_date(hour, minute, second, year, month, day) |
| 278 | + else: |
| 279 | + show_time(hour, minute, second) |
170 | 280 |
|
171 |
| - oled.text("Time:", 10, 10, oled.white) |
172 |
| - oled.text(time_string, 10, 20, oled.white) |
173 |
| - oled.text("Date:", 10, 35, oled.white) |
174 |
| - oled.text(date_string, 10, 45, oled.white) |
175 |
| - |
176 |
| - oled.show() |
177 |
| - |
178 |
| - end_time = time.ticks_ms() |
179 |
| - print(f"Updating Display took: {end_time - start_time} ms") |
| 281 | + oled.show() |
| 282 | + |
| 283 | + end_time = time.ticks_ms() |
| 284 | + print(f"Updating Display took: {end_time - start_time} ms") |
0 commit comments