forked from adafruit/u2if
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhub75_bitbang_64x32.py
68 lines (57 loc) · 1.68 KB
/
hub75_bitbang_64x32.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
import time
from machine import u2if, Pin, GroupPin
# 64*32 led matrix with a bit banging hub75 protocol (so very slow). It uses GroupPin to select line
# through A,B,C and D.
# Initialize GPIO to output and set the value HIGH
led = Pin(u2if.GP20, Pin.OUT, value=Pin.HIGH)
time.sleep(1)
# Switch off the led
led.value(Pin.LOW)
R0 = Pin(u2if.GP0, Pin.OUT, value=Pin.LOW)
G0 = Pin(u2if.GP1, Pin.OUT, value=Pin.LOW)
B0 = Pin(u2if.GP2, Pin.OUT, value=Pin.LOW)
R1 = Pin(u2if.GP3, Pin.OUT, value=Pin.LOW)
G1 = Pin(u2if.GP4, Pin.OUT, value=Pin.LOW)
B1 = Pin(u2if.GP5, Pin.OUT, value=Pin.LOW)
A = Pin(u2if.GP6, Pin.OUT, value=Pin.LOW)
B = Pin(u2if.GP7, Pin.OUT, value=Pin.LOW)
C = Pin(u2if.GP8, Pin.OUT, value=Pin.LOW)
D = Pin(u2if.GP9, Pin.OUT, value=Pin.LOW)
lines = GroupPin([D, C, B, A])
CLK = Pin(u2if.GP11, Pin.OUT, value=Pin.HIGH)
STB = Pin(u2if.GP12, Pin.OUT, value=Pin.LOW)
OE = Pin(u2if.GP13, Pin.OUT, value=Pin.LOW)
for i in range(64):
CLK.value(Pin.LOW)
if i< 21:
B0.value(Pin.HIGH)
B1.value(Pin.HIGH)
R0.value(Pin.LOW)
R1.value(Pin.LOW)
G0.value(Pin.LOW)
G1.value(Pin.LOW)
elif i < 43:
B0.value(Pin.HIGH)
B1.value(Pin.HIGH)
R0.value(Pin.HIGH)
R1.value(Pin.HIGH)
G0.value(Pin.HIGH)
G1.value(Pin.HIGH)
else:
R0.value(Pin.HIGH)
R1.value(Pin.HIGH)
B0.value(Pin.LOW)
B1.value(Pin.LOW)
G0.value(Pin.LOW)
G1.value(Pin.LOW)
CLK.value(Pin.HIGH)
OE.value(Pin.HIGH)
#A.value(Pin.LOW)
STB.value(Pin.HIGH)
STB.value(Pin.LOW)
OE.value(Pin.LOW)
while True:
for i in range(16):
#OE.value(Pin.HIGH)
lines.value(i)
#OE.value(Pin.LOW)