forked from mcauser/micropython-my9221
-
Notifications
You must be signed in to change notification settings - Fork 0
/
my9221_test12.py
140 lines (120 loc) · 3.39 KB
/
my9221_test12.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
from machine import Pin
from my9221_12 import MY9221
# Nucleo F446RE
ledbar = MY9221(Pin('D4'), Pin('D5'))
# ESP8266
#ledbar = MY9221(Pin(4), Pin(5))
# PyBoard
# ledbar = MY9221(Pin('X8'), Pin('X6'))
# STM32F407VET6
# ledbar = MY9221(Pin('B6'), Pin('B8'))
# all LEDS on, full brightness
ledbar.level(12)
# four LEDS on, half brightness
ledbar.level(4, 0x0F)
# reverse orientation, first LED is green
ledbar.reverse(True)
ledbar.level(1)
# normal orientation, first LED is red
ledbar.reverse(False)
ledbar.level(1)
# switch on specific leds
ledbar.bits(0b111111000000)
ledbar.bits(0b000000111111)
ledbar.bits(1)
ledbar.bits(3)
ledbar.bits(7)
# first and last LED on, very dim
ledbar.bits(2049, 7)
# alternating LEDs
ledbar.bits(0b010101010101)
ledbar.bits(0b101010101010)
buf = b'\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff'
ledbar.bytes(buf)
# fade out LEDs
buf = bytearray([0,1,3,7,15,31,63,127,255,255,255,255])
ledbar.reverse(True)
ledbar.bytes(buf)
ledbar.reverse(False)
ledbar.bytes(buf)
# various brightnesses
buf = [0,0,0,0,0,255,127,63,15,7,3,1]
ledbar.bytes(buf)
# cycle through LEDS with various brightnesses
from time import sleep_ms
buf = [0,1,3,7,15,31,63,127,255,255,255,255]
for i in range(50):
buf.insert(0,buf.pop())
ledbar.bytes(buf)
sleep_ms(100)
# random LEDs
import urandom
for i in range(100):
ledbar.bits(urandom.getrandbits(12))
# walk through all possible LED combinations
for i in range(4096):
ledbar.bits(i)
# Use 8bit greyscale mode (default)
# LED brightness 0x00-0xFF
ledbar._write16(0x00) # command
ledbar._write16(0xFF) # led 1
ledbar._write16(0xFF) # led 2
ledbar._write16(0x00) # led 3
ledbar._write16(0x00) # led 4
ledbar._write16(0x00) # led 5
ledbar._write16(0xFF) # led 6
ledbar._write16(0xFF) # led 7
ledbar._write16(0x00) # led 8
ledbar._write16(0x00) # led 9
ledbar._write16(0x00) # led 10
ledbar._write16(0xFF) # led 11
ledbar._write16(0xFF) # led 12
ledbar._latch()
# Use 12bit greyscale mode
# LED brightness 0x000-0xFFF
ledbar._write16(0x0100) # command
ledbar._write16(0x0FFF) # led 1
ledbar._write16(0x0000) # led 2
ledbar._write16(0x00FF) # led 3
ledbar._write16(0x0000) # led 4
ledbar._write16(0x000F) # led 5
ledbar._write16(0x0000) # led 6
ledbar._write16(0x0000) # led 7
ledbar._write16(0x000F) # led 8
ledbar._write16(0x0000) # led 9
ledbar._write16(0x00FF) # led 10
ledbar._write16(0x0000) # led 11
ledbar._write16(0x0FFF) # led 12
ledbar._latch()
# Use 14bit greyscale mode
# LED brightness 0x000-0x3FFF
ledbar._write16(0x0200) # command
ledbar._write16(0x3FFF) # led 1, 16383
ledbar._write16(0x03FF) # led 2, 1023
ledbar._write16(0x0000) # led 3
ledbar._write16(0x003F) # led 4, 63
ledbar._write16(0x0003) # led 5, 3
ledbar._write16(0x0000) # led 6
ledbar._write16(0x0000) # led 7
ledbar._write16(0x0003) # led 8, 3
ledbar._write16(0x003F) # led 9, 63
ledbar._write16(0x0000) # led 10
ledbar._write16(0x03FF) # led 11, 1023
ledbar._write16(0x3FFF) # led 12, 16383
ledbar._latch()
# Use 16bit greyscale mode
# LED brightness 0x0000-0xFFFF
ledbar._write16(0x0300) # command
ledbar._write16(0xFFFF) # led 1
ledbar._write16(0x0FFF) # led 2
ledbar._write16(0x00FF) # led 3
ledbar._write16(0x000F) # led 4
ledbar._write16(0x0007) # led 5
ledbar._write16(0x0003) # led 6
ledbar._write16(0x0001) # led 7
ledbar._write16(0x0000) # led 8
ledbar._write16(0x0000) # led 9
ledbar._write16(0x0000) # led 10
ledbar._write16(0x0000) # led 11
ledbar._write16(0x0000) # led 12
ledbar._latch()