-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLED.py
More file actions
100 lines (85 loc) · 2.62 KB
/
LED.py
File metadata and controls
100 lines (85 loc) · 2.62 KB
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
import pigpio
import time
pi = pigpio.pi()
r = 17
g = 22
b = 24
class LED():
red = 0
green = 0
blue = 0
power = 1
speed = 50
fading = False
def __init__(self, red: int, green: int, blue: int, power: float):
self.red = red
self.green = green
self.blue = blue
self.power = power
def update(self, red: int, green: int, blue: int, power: float):
self.red = red
self.green = green
self.blue = blue
self.power = power
def gpio(self):
pi.set_PWM_dutycycle(r, self.red * self.power)
pi.set_PWM_dutycycle(g, self.green * self.power)
pi.set_PWM_dutycycle(b, self.blue * self.power)
def sleep(self):
self.fading = True
self.speed = 65;
step = -1
rBeg = self.red
gBeg = self.green
bBeg = self.blue
rDiff = self.red / 100
gDiff = self.green / 100
bDiff = self.blue / 100
while self.fading:
if step > 0:
beg = 100
end = 0
step = -1
else:
beg = 0
end = 100
step = 1
for i in range(beg, end, step):
self.power = i/100
pi.set_PWM_dutycycle(r, self.red * self.power)
pi.set_PWM_dutycycle(g, self.green * self.power)
pi.set_PWM_dutycycle(b, self.blue * self.power)
time.sleep(self.speed / 1000)
def fade(self, toRed, toGreen, toBlue, speed=65):
self.fading = True
self.speed = speed
rBeg = self.red
gBeg = self.green
bBeg = self.blue
rDiff = (toRed - self.red) / 100
gDiff = (toGreen - self.green) / 100
bDiff = (toBlue - self.blue) / 100
print("Increments:\nr:{0}, g:{1}, b:{2}".format(rDiff, gDiff, bDiff))
step = -1
while self.fading:
if step > 0:
beg = 100
end = 0
step = -1
else:
beg = 0
end = 100
step = 1
for i in range(beg, end, step):
red = rBeg + i * rDiff
green = gBeg + i * gDiff
blue = bBeg + i * bDiff
pi.set_PWM_dutycycle(r, red * self.power)
pi.set_PWM_dutycycle(g, green * self.power)
pi.set_PWM_dutycycle(b, blue * self.power)
time.sleep(self.speed / 1000)
print("EXITING FADE")
def off(self):
pi.set_PWM_dutycycle(r, 0)
pi.set_PWM_dutycycle(g, 0)
pi.set_PWM_dutycycle(b, 0)