Forum: Mikrocontroller und Digitale Elektronik ReSpeaker 4-mic HAT: APA102 LEDs Problem


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von GestureJoe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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ß

von GestureJoe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
GestureJoe schrieb:
Habe vergessen, auf welcher Plattform:

Raspberry Pi 3 Model B
cat /etc/os-release liefert:
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian

von Marc V. (Firma: Vescomp) (logarithmus)


Bewertung
0 lesenswert
nicht lesenswert
GestureJoe schrieb:
> for i in range(0,12):

 Hast du 13 LEDs ?

 Sollte das nicht von 0 bis 11 gehen?

: Bearbeitet durch User
von GestureJoe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ne, das passt so. Solange i < 12, läuft die for-Schleife.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.