Hallo,
ich habe seit ein paar Tagen das ReSpeaker 4mic Array im Einsatz. Aber
die darauf befindlichen 12 APA102 LEDs lassen sich nicht richtig
ansteuern.
Es wurden schon sowohl die vom Seeed Wiki angebotene Library
(https://github.com/respeaker/4mics_hat.git) als auch die von tinue
(https://github.com/tinue/APA102_Pi) Library ausprobiert.
In einer for-Schleife will ich die 12 LEDS nacheinander einzeln grün
bzw. blau aufleuchten lassen:
1 | from APA102_Pi.driver import apa102
|
2 | import RPi.GPIO as GPIO
|
3 | from time import sleep
|
4 | import sys
|
5 |
|
6 | GPIO.setmode(GPIO.BCM)
|
7 | GPIO.setup(5, GPIO.OUT)
|
8 | GPIO.output(5, GPIO.HIGH)
|
9 |
|
10 | color = 0x0000FF
|
11 |
|
12 | leds = apa102.APA102(12)
|
13 | leds.clear_strip()
|
14 | sleep(0.5)
|
15 | while(1):
|
16 | leds.clear_strip()
|
17 | sleep(2)
|
18 | try:
|
19 | for i in range(0,12):
|
20 | #leds.set_pixel_rgb(i, color, 100)
|
21 | leds.set_pixel(i, 0, 255, 0, 100)
|
22 | leds.show()
|
23 | print("LED {}".format(i))
|
24 | sleep(0.5)
|
25 | leds.clear_strip()
|
26 | sleep(0.5)
|
27 | #leds.show()
|
28 | #sleep(0.5)
|
29 | #leds.clear_strip()
|
30 | #sleep(0.5)
|
31 | except KeyboardInterrupt:
|
32 | sys.exit()
|
Mit der Farbe rot funktioniert das Ganze ohne Probleme.
Setze ich nun zunächst alle 12 LEDs in einer for-Schleife grün oder blau
und rufe erst am Ende die show() Methode auf, leuchten alle 12 LEDs zwar
auf, aber beim Aufruf von clear_strip() gehen alle LEDs aus bis auf LED
0 und LED 1.
[...]
1 | for i in range(0,12):
|
2 | leds.set_pixel_rgb(i, color, 100)
|
3 |
|
4 | leds.show()
|
5 | sleep(0.5)
|
6 | leds.clear_strip()
|
7 | sleep(0.5)
|
8 | except KeyboardInterrupt:
|
9 | sys.exit()
|
Hat jemand dasselbe Problem schon gehabt oder jemand eine Idee? Ich
vermute, dass entweder was mit der Methode clear_strip() nicht ganz
stimmt, der __init() oder dem SPI-Timing?
Vielen Dank für jeden Hinweis!
Gruß