WS2812 Matrix von Raspberry Pi ansteuern

Gast #5060061
Lesenswert?

Guten Abend,
ich habe vor längerem eine 17 x 17 (289 LEDs) Matrix mit WS2812 "Neo 
Pixel" LED's gebaut, die ich bis dato direkt von einem Arduino nano mit 
simplen Animationen bespielt habe.

Nun würde ich gerne eine Uhr daraus machen und alternativ komplexere 
Animationen anzeigen. Dazu wäre ein Raspberry Pi natürlich ideal. Ich 
habe versucht die WS2812 direkt vom RPI anzusteuern, allerdings gelang 
mit dies bei so vielen LED's nicht ohne flackern. (kein Echtzeitsytem).

Nun bin ich soweit, dass ich die LED Daten (RGB -> 3 Byte / LED) via I2C 
vom RPI auf den Arduino übertrage um diese anschließen vom Arduino an 
die WS2812 zu senden. Das funktioniert für einzelne LED's ziemlich gut, 
allerdings dauert eine komplette Übertragung aller LEDs ca. 600ms 
(gemessen mit micros()).
Natürlich viel zu lange, da ich ca. 8-10fps als Ziel habe und diese 
Daten schreibe auch noch muss (in dem Beispiel mit 600ms habe ich nur 
empfangen mit der standard I2C Frequency den RPI).

Gerade habe ich noch andere Möglichkeiten gefunden die Daten zu 
übertragen: SPI, UART über GPIO, UART via USB, ...
Doch was wäre die beste Möglichkeit um diese Geschwindigkeit zu 
erreichen? Gelingt das mit einem nano überhaupt, oder muss ich eher zu 
einem SAM Coretex wechseln?

lg!
#5060159
Lesenswert?

Wolfgang M. schrieb:
> Ich
> habe versucht die WS2812 direkt vom RPI anzusteuern, allerdings gelang
> mit dies bei so vielen LED's nicht ohne flackern. (kein Echtzeitsytem).

Wie hast du das angesteuert. Bit-Banging kommt da an seine Grenzen.

Wolfgang M. schrieb:
> Gerade habe ich noch andere Möglichkeiten gefunden die Daten zu
> übertragen: SPI, UART über GPIO, UART via USB, ...

Mit SPI oder PWM kannst du auch direkt die LEDs ansteuern (DMA).

Beitrag "WS2812 LED-Streifen mit Raspberry Pi 3 ansteuern?"

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren