Skip to content

Commit d185d42

Browse files
committedNov 17, 2014
initial upload
based on code from bandrel
1 parent e25ed65 commit d185d42

File tree

2 files changed

+356
-0
lines changed

2 files changed

+356
-0
lines changed
 

‎7segment.py

+167
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
#!/usr/bin/env python
2+
import RPi.GPIO as GPIO
3+
import time
4+
5+
GPIO.setmode(GPIO.BCM)
6+
7+
digit = 0
8+
A = 22
9+
B = 27
10+
C = 4
11+
D = 24
12+
E = 25
13+
F = 18
14+
G =23
15+
DP = 17
16+
17+
upswitch = 11
18+
downswitch = 7
19+
GPIO.setup(upswitch, GPIO.IN)
20+
GPIO.setup(downswitch, GPIO.IN)
21+
22+
23+
GPIO.setup(A, GPIO.OUT)
24+
GPIO.setup(B, GPIO.OUT)
25+
GPIO.setup(C, GPIO.OUT)
26+
GPIO.setup(D, GPIO.OUT)
27+
GPIO.setup(E, GPIO.OUT)
28+
GPIO.setup(F, GPIO.OUT)
29+
GPIO.setup(G, GPIO.OUT)
30+
GPIO.setup(DP, GPIO.OUT)
31+
32+
GPIO.output(A,GPIO.LOW)
33+
GPIO.output(B,GPIO.LOW)
34+
GPIO.output(C,GPIO.LOW)
35+
GPIO.output(D,GPIO.LOW)
36+
GPIO.output(E,GPIO.LOW)
37+
GPIO.output(F,GPIO.LOW)
38+
GPIO.output(G,GPIO.LOW)
39+
GPIO.output(DP,GPIO.LOW)
40+
41+
def displaydigit(digit):
42+
if digit == 0:
43+
GPIO.output(A, GPIO.HIGH)
44+
GPIO.output(B, GPIO.HIGH)
45+
GPIO.output(C, GPIO.HIGH)
46+
GPIO.output(D, GPIO.HIGH)
47+
GPIO.output(E, GPIO.HIGH)
48+
GPIO.output(F, GPIO.HIGH)
49+
GPIO.output(G, GPIO.LOW)
50+
GPIO.output(DP, GPIO.LOW)
51+
return
52+
elif digit == 1:
53+
GPIO.output(A, GPIO.LOW)
54+
GPIO.output(B, GPIO.HIGH)
55+
GPIO.output(C, GPIO.HIGH)
56+
GPIO.output(D, GPIO.LOW)
57+
GPIO.output(E, GPIO.LOW)
58+
GPIO.output(F, GPIO.LOW)
59+
GPIO.output(G, GPIO.LOW)
60+
GPIO.output(DP, GPIO.LOW)
61+
return
62+
elif digit == 2:
63+
GPIO.output(A, GPIO.HIGH)
64+
GPIO.output(B, GPIO.HIGH)
65+
GPIO.output(C, GPIO.LOW)
66+
GPIO.output(D, GPIO.HIGH)
67+
GPIO.output(E, GPIO.HIGH)
68+
GPIO.output(F, GPIO.LOW)
69+
GPIO.output(G, GPIO.HIGH)
70+
GPIO.output(DP, GPIO.LOW)
71+
return
72+
elif digit == 3:
73+
GPIO.output(A, GPIO.HIGH)
74+
GPIO.output(B, GPIO.HIGH)
75+
GPIO.output(C, GPIO.HIGH)
76+
GPIO.output(D, GPIO.HIGH)
77+
GPIO.output(E, GPIO.LOW)
78+
GPIO.output(F, GPIO.LOW)
79+
GPIO.output(G, GPIO.HIGH)
80+
GPIO.output(DP, GPIO.LOW)
81+
return
82+
elif digit == 4:
83+
GPIO.output(A, GPIO.LOW)
84+
GPIO.output(B, GPIO.HIGH)
85+
GPIO.output(C, GPIO.HIGH)
86+
GPIO.output(D, GPIO.LOW)
87+
GPIO.output(E, GPIO.LOW)
88+
GPIO.output(F, GPIO.HIGH)
89+
GPIO.output(G, GPIO.HIGH)
90+
GPIO.output(DP, GPIO.LOW)
91+
return
92+
elif digit == 5:
93+
GPIO.output(A, GPIO.HIGH)
94+
GPIO.output(B, GPIO.LOW)
95+
GPIO.output(C, GPIO.HIGH)
96+
GPIO.output(D, GPIO.HIGH)
97+
GPIO.output(E, GPIO.LOW)
98+
GPIO.output(F, GPIO.HIGH)
99+
GPIO.output(G, GPIO.HIGH)
100+
GPIO.output(DP, GPIO.LOW)
101+
return
102+
elif digit == 6:
103+
GPIO.output(A, GPIO.HIGH)
104+
GPIO.output(B, GPIO.LOW)
105+
GPIO.output(C, GPIO.HIGH)
106+
GPIO.output(D, GPIO.HIGH)
107+
GPIO.output(E, GPIO.HIGH)
108+
GPIO.output(F, GPIO.HIGH)
109+
GPIO.output(G, GPIO.HIGH)
110+
GPIO.output(DP, GPIO.LOW)
111+
return
112+
elif digit == 7:
113+
GPIO.output(A, GPIO.HIGH)
114+
GPIO.output(B, GPIO.HIGH)
115+
GPIO.output(C, GPIO.HIGH)
116+
GPIO.output(D, GPIO.LOW)
117+
GPIO.output(E, GPIO.LOW)
118+
GPIO.output(F, GPIO.LOW)
119+
GPIO.output(G, GPIO.LOW)
120+
GPIO.output(DP, GPIO.LOW)
121+
return
122+
elif digit == 8:
123+
GPIO.output(A, GPIO.HIGH)
124+
GPIO.output(B, GPIO.HIGH)
125+
GPIO.output(C, GPIO.HIGH)
126+
GPIO.output(D, GPIO.HIGH)
127+
GPIO.output(E, GPIO.HIGH)
128+
GPIO.output(F, GPIO.HIGH)
129+
GPIO.output(G, GPIO.HIGH)
130+
GPIO.output(DP, GPIO.LOW)
131+
return
132+
elif digit == 9:
133+
GPIO.output(A, GPIO.HIGH)
134+
GPIO.output(B, GPIO.HIGH)
135+
GPIO.output(C, GPIO.HIGH)
136+
GPIO.output(D, GPIO.HIGH)
137+
GPIO.output(E, GPIO.LOW)
138+
GPIO.output(F, GPIO.HIGH)
139+
GPIO.output(G, GPIO.HIGH)
140+
GPIO.output(DP, GPIO.LOW)
141+
return
142+
143+
prev_down = 0
144+
prev_up = 0
145+
updigit = GPIO.input(upswitch)
146+
downdigit = GPIO.input(downswitch)
147+
148+
while True:
149+
#take a reading
150+
displaydigit(digit)
151+
#if the last reading was low and this one high, print
152+
if ((not prev_up) and updigit):
153+
digit = abs(digit + 1)
154+
#update previous input
155+
156+
#slight pause to debounce
157+
#if the last reading was low and this one high, print
158+
if ((not prev_down) and downdigit):
159+
digit = abs(digit - 1)
160+
#update previous input
161+
prev_down = downdigit
162+
prev_up = updigit
163+
#slight pause to debounce
164+
time.sleep(0.05)
165+
166+
167+
GPIO.cleanup()

‎7segment.ryan1.py

+189
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
#!/usr/bin/env python
2+
import RPi.GPIO as GPIO
3+
import time
4+
5+
GPIO.setmode(GPIO.BCM)
6+
7+
digit = 0
8+
9+
#Pinouts
10+
A = 22
11+
B = 27
12+
C = 4
13+
D = 24
14+
E = 25
15+
F = 18
16+
G =23
17+
DP = 17
18+
19+
upswitch = 11
20+
downswitch = 7
21+
GPIO.setup(upswitch, GPIO.IN)
22+
GPIO.setup(downswitch, GPIO.IN)
23+
24+
25+
GPIO.setup(A, GPIO.OUT)
26+
GPIO.setup(B, GPIO.OUT)
27+
GPIO.setup(C, GPIO.OUT)
28+
GPIO.setup(D, GPIO.OUT)
29+
GPIO.setup(E, GPIO.OUT)
30+
GPIO.setup(F, GPIO.OUT)
31+
GPIO.setup(G, GPIO.OUT)
32+
GPIO.setup(DP, GPIO.OUT)
33+
34+
GPIO.output(A,GPIO.LOW)
35+
GPIO.output(B,GPIO.LOW)
36+
GPIO.output(C,GPIO.LOW)
37+
GPIO.output(D,GPIO.LOW)
38+
GPIO.output(E,GPIO.LOW)
39+
GPIO.output(F,GPIO.LOW)
40+
GPIO.output(G,GPIO.LOW)
41+
GPIO.output(DP,GPIO.LOW)
42+
43+
def displaydigit(digit):
44+
if digit == 0:
45+
GPIO.output(A, GPIO.HIGH)
46+
GPIO.output(B, GPIO.HIGH)
47+
GPIO.output(C, GPIO.HIGH)
48+
GPIO.output(D, GPIO.HIGH)
49+
GPIO.output(E, GPIO.HIGH)
50+
GPIO.output(F, GPIO.HIGH)
51+
GPIO.output(G, GPIO.LOW)
52+
GPIO.output(DP, GPIO.LOW)
53+
return
54+
elif digit == 1:
55+
GPIO.output(A, GPIO.LOW)
56+
GPIO.output(B, GPIO.HIGH)
57+
GPIO.output(C, GPIO.HIGH)
58+
GPIO.output(D, GPIO.LOW)
59+
GPIO.output(E, GPIO.LOW)
60+
GPIO.output(F, GPIO.LOW)
61+
GPIO.output(G, GPIO.LOW)
62+
GPIO.output(DP, GPIO.LOW)
63+
return
64+
elif digit == 2:
65+
GPIO.output(A, GPIO.HIGH)
66+
GPIO.output(B, GPIO.HIGH)
67+
GPIO.output(C, GPIO.LOW)
68+
GPIO.output(D, GPIO.HIGH)
69+
GPIO.output(E, GPIO.HIGH)
70+
GPIO.output(F, GPIO.LOW)
71+
GPIO.output(G, GPIO.HIGH)
72+
GPIO.output(DP, GPIO.LOW)
73+
return
74+
elif digit == 3:
75+
GPIO.output(A, GPIO.HIGH)
76+
GPIO.output(B, GPIO.HIGH)
77+
GPIO.output(C, GPIO.HIGH)
78+
GPIO.output(D, GPIO.HIGH)
79+
GPIO.output(E, GPIO.LOW)
80+
GPIO.output(F, GPIO.LOW)
81+
GPIO.output(G, GPIO.HIGH)
82+
GPIO.output(DP, GPIO.LOW)
83+
return
84+
elif digit == 4:
85+
GPIO.output(A, GPIO.LOW)
86+
GPIO.output(B, GPIO.HIGH)
87+
GPIO.output(C, GPIO.HIGH)
88+
GPIO.output(D, GPIO.LOW)
89+
GPIO.output(E, GPIO.LOW)
90+
GPIO.output(F, GPIO.HIGH)
91+
GPIO.output(G, GPIO.HIGH)
92+
GPIO.output(DP, GPIO.LOW)
93+
return
94+
elif digit == 5:
95+
GPIO.output(A, GPIO.HIGH)
96+
GPIO.output(B, GPIO.LOW)
97+
GPIO.output(C, GPIO.HIGH)
98+
GPIO.output(D, GPIO.HIGH)
99+
GPIO.output(E, GPIO.LOW)
100+
GPIO.output(F, GPIO.HIGH)
101+
GPIO.output(G, GPIO.HIGH)
102+
GPIO.output(DP, GPIO.LOW)
103+
return
104+
elif digit == 6:
105+
GPIO.output(A, GPIO.HIGH)
106+
GPIO.output(B, GPIO.LOW)
107+
GPIO.output(C, GPIO.HIGH)
108+
GPIO.output(D, GPIO.HIGH)
109+
GPIO.output(E, GPIO.HIGH)
110+
GPIO.output(F, GPIO.HIGH)
111+
GPIO.output(G, GPIO.HIGH)
112+
GPIO.output(DP, GPIO.LOW)
113+
return
114+
elif digit == 7:
115+
GPIO.output(A, GPIO.HIGH)
116+
GPIO.output(B, GPIO.HIGH)
117+
GPIO.output(C, GPIO.HIGH)
118+
GPIO.output(D, GPIO.LOW)
119+
GPIO.output(E, GPIO.LOW)
120+
GPIO.output(F, GPIO.LOW)
121+
GPIO.output(G, GPIO.LOW)
122+
GPIO.output(DP, GPIO.LOW)
123+
return
124+
elif digit == 8:
125+
GPIO.output(A, GPIO.HIGH)
126+
GPIO.output(B, GPIO.HIGH)
127+
GPIO.output(C, GPIO.HIGH)
128+
GPIO.output(D, GPIO.HIGH)
129+
GPIO.output(E, GPIO.HIGH)
130+
GPIO.output(F, GPIO.HIGH)
131+
GPIO.output(G, GPIO.HIGH)
132+
GPIO.output(DP, GPIO.LOW)
133+
return
134+
elif digit == 9:
135+
GPIO.output(A, GPIO.HIGH)
136+
GPIO.output(B, GPIO.HIGH)
137+
GPIO.output(C, GPIO.HIGH)
138+
GPIO.output(D, GPIO.HIGH)
139+
GPIO.output(E, GPIO.LOW)
140+
GPIO.output(F, GPIO.HIGH)
141+
GPIO.output(G, GPIO.HIGH)
142+
GPIO.output(DP, GPIO.LOW)
143+
return
144+
145+
def displaySequence(sequencelist, interstepdelay, enddelay):
146+
#Iterates though every step of the sequence
147+
for sequencestepdict in sequencelist:
148+
#Iterates through every LED segment in the sequence step
149+
for ledsegment in sequencestepdict:
150+
GPIO.output(ledsegment, sequencestepdict[ledsegment])
151+
time.sleep(interstepdelay)
152+
time.sleep(enddelay)
153+
154+
###
155+
#Initialization animation
156+
#Each dictionary is a animation step in the sequence
157+
off = GPIO.LOW
158+
on = GPIO.HIGH
159+
160+
POSTsequence = [{'A': on}, {'A': off,'B': on}, {'B': off, 'C': on}, {'C': off, 'D': on}, {'D': off, 'E': on}, {'E': off, 'F': on}, {'F': off, 'G': on}, {'G': off, 'A': on}, {'A': off,'B': on}, {'B': off, 'C': on}, {'C': off, 'D': on}, {'D': off, 'E': on}, {'E': off, 'F': on}, {'F': off, 'G': on}, {'G': off}, {'A': on, 'B': on, 'C': on, 'D': on, 'E': on, 'F': on, 'G': on, 'DP': on}, {'A': off, 'B': off, 'C': off, 'D': off, 'E': off, 'F': off, 'G': off, 'DP': off}, {'A': on, 'B': on, 'C': on, 'D': on, 'E': on, 'F': on, 'G': on, 'DP': on}, {'A': off, 'B': off, 'C': off, 'D': off, 'E': off, 'F': off, 'G': off, 'DP': off}]
161+
162+
displaySequence(POSTsequence, .1, .25)
163+
###
164+
165+
prev_down = 0
166+
prev_up = 0
167+
updigit = GPIO.input(upswitch)
168+
downdigit = GPIO.input(downswitch)
169+
170+
while True:
171+
#take a reading
172+
displaydigit(digit)
173+
#if the last reading was low and this one high, print
174+
if ((not prev_up) and updigit):
175+
digit = abs(digit + 1)
176+
#update previous input
177+
178+
#slight pause to debounce
179+
#if the last reading was low and this one high, print
180+
if ((not prev_down) and downdigit):
181+
digit = abs(digit - 1)
182+
#update previous input
183+
prev_down = downdigit
184+
prev_up = updigit
185+
#slight pause to debounce
186+
time.sleep(0.05)
187+
188+
189+
GPIO.cleanup()

0 commit comments

Comments
 (0)
Please sign in to comment.