Forum: Mikrocontroller und Digitale Elektronik WS2812 Matrix von Raspberry Pi ansteuern


von Wolfgang M. (avvf)


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!

von Jörg R. (solar77)


Lesenswert?

WS2812 oder WS2812B

Die WS2812 arbeiten mit 5 Volt, der Raspi liefert meines Wissens nach 
3,3 Volt. Könnte das ein Problem sein?

Die Anzahl der Leds dürfte kein Problem sein.

von Wolfgang M. (avvf)


Lesenswert?

> Die WS2812 arbeiten mit 5 Volt, der Raspi liefert meines Wissens nach
> 3,3 Volt. Könnte das ein Problem sein?
>

Versorge die LED's mit 5V, hatte allerdings einen ausreichend schnellen 
Pegelwandler dazwischen.

lg.

von Mikro 7. (mikro77)


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?"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.