Und zwar habe ich ein LED Band WS2812 mit 300 LED's.
Darauf möchte ich jetzt fortlaufend 20 rote, dann 20 blaue, dann wieder 20 rote u.s.w. leuchten lassen.
Aber das ganze soll nach 1 Sekunde um eine Position nach hinten verschoben werden.
Beispiel:
LED Band komplett aus
1. LED rot an
1 Sekunde warten
2. LED rot an
1 Sekunde warten
3. LED rot an
u.
s.
w.
20. LED rot an
> dann soll die 1. LED blau und die 2. bis die 21. LED rot leuchten.
1 Sekunde warten
1. - 2. LED blau an
3. - 22. LED rot an
u.
s.
w.
20. LED blau an
21-40 LED rot an
1 Sekunde warten
1. LED rot, 2. - 21. LED blau und 22. - 41. LED rot
und das soll immer fortgeführt werden so das es immer fortlaufend ist.
Wenn das Ende erreicht ist, und hinten nur noch 5 rote leuchten sollen vorne wieder 15 leuchten.
Im Prinzip so (ich mache es mal mit nur 95 LED als Darstellung):
rrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrr
1 Sekunde warten
rrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrr
1 Sekunde warten
rrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrr
1 Sekunde warten
rrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrr
1 Sekunde warten
rrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrr
1 Sekunde warten
rrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrr
1 Sekunde warten
brrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrr
1 Sekunde warten
bbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrr
1 Sekunde warten
bbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrrrrrrrrrrrbbbbbbbbbbbbbbbbbbbbrrrrrrrrrrr
Ich hoffe ich konnte es einigermaßen gut erklären mein Problem.
Was ich bisher versucht habe was aber nur bis zum ende funktioniert und dann "stehen" bleibt.
Code: Alles auswählen
if red < 300:
red_test(red)
red += 1
if red >= 40:
red_test(red - 40)
if red >= 80:
red_test(red - 80)
if red >= 120:
red_test(red - 120)
if red >= 160:
red_test(red - 160)
if red >= 200:
red_test(red - 200)
if red >= 240:
red_test(red - 240)
if red >= 280:
red_test(red - 280)
else:
red = 0
if blue < 300 and red > 20:
blue_test(blue)
blue += 1
if blue >= 40:
blue_test(blue - 40)
if blue >= 80:
blue_test(blue - 80)
if blue >= 120:
blue_test(blue - 120)
if blue >= 160:
blue_test(blue - 160)
if blue >= 200:
blue_test(blue - 200)
if blue >= 240:
blue_test(blue - 240)
if blue >= 280:
blue_test(blue - 280)
else:
blue = 0
time.sleep(1)