Mehrere NeoMatrixen mit der Adafruit NeoMatrix Library verwenden

Hallo zusammen,

Ich bin ein relativer Anfänger was die Arduino programmierung betrifft und versuche mir trotzdem eine LED-Matrix mit 16x64 Pixeln aufzubauen. Aber irgenwie komm ich nicht weiter und hoffe auf eure Hilfe.

Ich verwende als Grundgerüst den Arduino Sketch "Adafruit NeoMatrix/tiletest" mit einem Arduino UNO.
Als LED-Matrix habe ich 4 Stk. "BTF-LIGHTING, 256 Pixels WS2812B"

Einen scrollenden Text bekomme ich bereits dargestellt, aber eben nur auf 2 der angeschlossenen Matrixen. Hierbei ist im Sketch eingestellt, dass ich vertikal 2 Matrixen benutze. (Erstmal soweit OK!)

Wenn ich nun aber einstelle, dass ich vertikal 3 oder 4 Matrixen angeschlossen habe, wird der Sketch zwar fehlerfrei auf den Arduino hochgeladen, aber es wird nichts mehr angezeigt (alles bleibt dunkel)

Ich denke, dass ein an der Deklaration der Anzahl Pixel liegt, da diese durchweg mit UInt8_t deklariert sind. Ab der Anzahl 535 Pixel geht nämlich nichts mehr.

Ich habe mal versucht das in den verwendeten Dateien auf UInt16_t umzustellen. Aber da ich nur wenig Erfahrung in "C" habe, ist das natürlich gnadenlos gescheitert. Sind ja außer dem Sketch auch einige Include-Dateien betroffen.

Hat das von euch schon einmal erweitert, oder gibt es andere Lösungen für dieses Problem?

Ich hoffe ihr könnt mir weiterhelfen und bedanke mich mal im Voraus.

Viele Grüße, Michl

Das kann sich nicht ausgehen... :slight_smile:
Wenn ich dich richtig verstehe, dann willst du 4 x 256 bzw. 16 x 64 "Pixel" verwenden, insgesamt sind das 1024.
Für jedes Pixel werden 3 Byte RAM des Arduino benötigt, um die Farbinformation zu speichern. Benötigt würden dafür also 3072 Byte.
Ein Arduino UNO hat aber nur 2048 Byte RAM.
Selbst wenn für das "übrige" Programm gar kein RAM benötigt würde, könntest du maximal etwa 680 Pixel ansteuern (680 x 3 = 2040), da aber zusätzlich noch RAM für "das übrige Programm" benötigt wird, sind es weniger (wie du ja schon herausgefunden hast).
Ein UNO ist also für dein Vorhaben "zu klein" - er hat zu wenig RAM.

Du kannst zum Beispiel einen MEGA verwenden, der hat 8 kB RAM.
Auch andere Mikrocontroller-Boards wären möglich zum Beispiel ein Teensy.

Hi uxomm,

Was das aus macht :slight_smile: !

ATMega verwendet, und schon wird alles wie gewünscht über alle 4 Matrixen angezeigt!

Danke für die Hilfe und viele Grüße, Michael

Super, dass es jetzt klappt!