LED Matrix

Hallo alle zusammen ich bin neu in diesem Forum und hätte eine frage und hoffe mir kann jemand helfen.

Ich habe mit einem Arduino-UNO eine LED Matrix gebaut mit 9 LED Modulen jedes Modul mit 8X8 LEDs also mit insgesamt 576 LEDs.

8 Module werden wie geplant angesteuert aber das letzte zeigt immer das gleiche wie das erste Moduls.

Kann mir jemand helfen wie ich das Problem lösen kann.

LED_Matrix3.ino (3.17 KB)

Erstaunlich. Die LedControl.h die ich benutze, hat die Zeile

#define ABS_MAX_DEVICE  4

insofern hätte ich erwartet, dass sich alles nach 4 Modulen wiederholt.

Was steht denn in deiner LedControl.h ?

Ein Ändern dieses Wertes könnte helfen, wäre jedenfalls mein erster Versuch.

Diese Zeile "#define ABS_MAX_DEVICE 4" habe ich nicht in meinem Programm.

Ich habe diese zeile "LedControl lc=LedControl(7,6,5,senkrecht*wagerecht);" und die Variablen "senkrecht u. wagerecht" habe ich die anzahl der LED Module, also 3X3 = 9.

Dann poste doch bitte mal die LedControl.h die du #include'st.

Die mir bekannte Bibliothek LedControl kann maximal 8 verarbeiten. Siehe LedControl.cpp:

    if(numDevices<=0 || numDevices>8 )
        numDevices=8;

Das ist die Zip Datei zu meiner LedControl.h

LedControl-1.0.6.zip (10.4 KB)

Pepe72336:
Das ist die Zip Datei zu meiner LedControl.h

Die habe ich wohl auch und ist auf 8 begrenzt.

Danke für die schnelle hilfe.

Das habe ich schon vermutet das die “LedControl.h” auf 8 Module begrenzt ist somit habe ich gleich die nächste frage wie kann ich die Module anzahl erhöhen oder gibt es eine andere Möglichkeit mehrere Module anzusteuern.

Pepe72336:
wie kann ich die Module anzahl erhöhen

Ich habe das noch nicht probiert, aber Du solltest mehrere Instanzen(?) der Bibliothek nutzen können:

LedControl lc1=LedControl(7,6,5,3); 
LedControl lc2=LedControl(7,6,4,3); 
LedControl lc3=LedControl(7,6,3,3);

Deine Punkte teils Du dann auf lc1, lc2 und lc3 auf.

Oder Du erweiterst die Bibliothek an den Stellen, die Du benötigst.

Oder Du benutzt die Bibliothek nicht und steuerst die ICs direkt an.

LedControl.h
        byte spidata[18]; // von 16LedControl.cpp

    if(numDevices<=0 || numDevices>9 ) // von 8
        numDevices=9; // von 8

Dann könnte es funktionieren.

Whandall:
Dann könnte es funktionieren.

Das wäre dann schön einfach.

@Pepe72336: Was hast Du probiert, was hat funktioniert?