2 Punktmatrixmodule ansteuern

Hallo,

diese Frage ist jetzt vielleicht nicht nur blöd, sondern auch Hirnrissig, aber ich habe gegoogelt und nicht viel hilfreiches gefunden. Also meine Frage: ich habe 2 8x8 Punktmatrixmodule und möchte beide ansteuern. Jedoch weiß ich nicht ob ich einfach 2 mal (LedControl lc=LedControl(5,4,3,1);) machen muss oder irgenwie anders. Ich bedanke mich schonmal im vorraus über jede (wenn auch fragwüedige Antwort:))

LG

Das kommt doch ganz darauf an, was du machen möchtest.
Das geht nicht aus deiner Frage hervor.
Gleich oder unterschiedlich leuchten ?
Und zeige uns deinen Sketch. Verwende dazu Code-Tags,Schaltfläche </> oben links im Editorfenster.

        /* 
         * Create a new controler 
         * Params :
         * dataPin pin on the Arduino where data gets shifted out
         * clockPin pin for the clock
         * csPin pin for selecting the device 
         * numDevices maximum number of devices that can be controled
         */
        LedControl(byte dataPin, byte clkPin, byte csPin, byte numDevices=1);

numDevices: maximum number of devices that can be controled

Also um bei deiner Vorlage zu beiben:

LedControl lc(5, 4, 3, 2);

die Module werden hintereinader geschaltet.

Welche Module?

uwefed: Welche Module?

Die blonden :-)

SCNR

Gregor

PS: Siehe Betreff

Moin,

das ist es ja, mit dem Code bin ich nicht wirklich weit. möchte probieren ein Snake-Spiel zu programmieren.(LCD, Joystick, 2 LED Module) Deswegen würde ich das gerne wissen.

LG

PS: Ich finde es echt krass wie aktiv hier alle sind.:)

DustinKern: Moin,

das ist es ja, mit dem Code bin ich nicht wirklich weit. möchte probieren ein Snake-Spiel zu programmieren.(LCD, Joystick, 2 LED Module) Deswegen würde ich das gerne wissen.

Heißt das jetzt, wir sollen für dich programmieren ? Oder sollen wir dir zeigen, wie Google funktioniert ?

Dann hier:

Google: "arduino snake game"

Und einer von 135.000 Treffern.

Aber ist doch kein Problem, wir helfen gerne und immer. Auch weil es unsere Freizeit ist. ;)

DustinKern: Deswegen würde ich das gerne wissen.

Meine Antwort hat dir nicht gefallen?

Oder warum möchtest du es immer noch wissen?

Also ich sage es mal so ich habe auf google nicht viel hilfreiches gefunden. @Whandall habe es nicht so richtig verstanden. Und nein, ich möchte schon meinen eigen Erfolg erleben @HotSystems.:)

LG

gregorss: Die blonden :-)

"Module" hab ich geschrieben nicht "Model". ;) ;) ;) :D Grüße Uwe

Achso @Uwefed vergessen https://www.amazon.de/NingB-Anzeige-Modul-MAX7219-Punktmatrix-Modul-Mikrocontroller/dp/B00K16ER7U

DustinKern:
Also ich sage es mal so ich habe auf google nicht viel hilfreiches gefunden. @Whandall habe es nicht so richtig verstanden. Und nein, ich möchte schon meinen eigen Erfolg erleben @HotSystems.:slight_smile:

LG

OK…verstehe ich.

Mich wundert allerdings, dass du dann von den 135.000 Beispielen nichts gefunden hast, was dir weiter helfen kann. Und das in der kurzen Zeit.
Alle Achtung.

Evtl. solltest du dich dann erst mal mit den Grundlagen von Arduino befassen. Sieh dir die Beispiele in der IDE an und übe damit. Danach kannst du sicher mehr mit den Beispielen und auch mit dem Vorschlag von Whandall anfangen. In dem Beitrag findest du doch schon, wie du ein zweites Modul anschließen musst.

Oder verstehst du es nur nicht ?
Auch da würden Grundlagen helfen.

Ich habe mich jetzt die letzten paar Monate mit den Grundlagen beschäftigt, und das waren auch meine ersten Schritte in der Programmierung. Würde gerne “weiter” machen, aber wenn du als “erfahrener” sagst das es besser wäre trotzdem mit den Grundlagen nochmal weiter zu machen dann werde ich das tun. :slight_smile:

LG

Arduino uno 8x8 LED max7219

Wäre das als Einstieg brauchbar?

DustinKern: Ich habe mich jetzt die letzten paar Monate mit den Grundlagen beschäftigt, und das waren auch meine ersten Schritte in der Programmierung. Würde gerne "weiter" machen, aber wenn du als "erfahrener" sagst das es besser wäre trotzdem mit den Grundlagen nochmal weiter zu machen dann werde ich das tun. :)

LG

Das ist schon mal eine gute Entscheidung.

Wir helfen gern, nur aktuell bietest du keine Basis, bei der wir helfen können. Da du offensichtlich den Vorschlag von Whandall nicht umsetzen kannst, fehlt diese.

Du solltest uns deinen Sketch-Versuch zeigen und wir können dann auch helfen.

Die MAX7219 können kaskadiert werden. Schau Dir mal das Datenblatt an. https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf Fig 3 Seite 13. Als Daten werden 8 Byte übertragen wobei jedes Bit eines Bytes einem LEFPunkt entspricht. Bei 2 Kaskadierten MAX7219 müssen einfach 2x 8 Byte übertragen werden.

Grüße Uwe

DustinKern: ... mit den Grundlagen nochmal weiter zu machen dann werde ich das tun. :)

Weiter zu machen ist auf jeden Fall eine gute Entscheidung! Da gibt es noch viel Spaß zu erleben ...

Und für Fragen hast Du ja schon mal eine gute Anlaufstelle gefunden.

Gruß

Gregor

Hi,

ich hatte die letzte Woche leider keine Zeit um weiter zu Basteln. Also wenn ich es jetzt richtig verstanden habe und die Himtereinander schalten muss, muss ich die GND, VCC,... anschlüsse jeweils miteinander verbinden. Würde es dann so gehen ?

#include "LedControl.h"

LedControl lc=LedControl(5,4,3,1);

unsigned long delaytime1=500;
unsigned long delaytime2=50;
void setup() {
  lc.shutdown(0,false);
  lc.setIntensity(0,8);
  lc.clearDisplay(0);
}

void writeArduinoOnMatrix() {
  byte a[16]={B01111110,B10001000,B10001000,B10001000,B01111110,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000};
  byte b[16]={B00010000,B00100000,B00100000,B00010000,B00111110,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000};
  byte c[16]={B11111110,B00010010,B00100010,B00100010,B00011100,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000};
  byte d[16]={B00111110,B00000100,B00000010,B00000010,B00111100,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000};
  byte e[16]={B00000000,B00000010,B10111110,B00100010,B00000000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000};
  byte f[16]={B00011110,B00100000,B00100000,B00010000,B00111110,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000};
  byte g[16]={B00011100,B00100010,B00100010,B00100010,B00011100,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,};
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  lc.setRow(0,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  lc.setRow(0,8,a[8]);
  lc.setRow(0,9,a[9]);
  lc.setRow(0,10,a[10]);
  lc.setRow(0,11,a[11]);
  lc.setRow(0,12,a[12]);
  lc.setRow(0,13,a[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
  lc.setRow(0,0,b[0]);
  lc.setRow(0,1,b[1]);
  lc.setRow(0,2,b[2]);
  lc.setRow(0,3,b[3]);
  lc.setRow(0,4,b[4]);
  lc.setRow(0,5,b[5]);
  lc.setRow(0,6,b[6]);
  lc.setRow(0,7,b[7]);
  lc.setRow(0,8,b[8]);
  lc.setRow(0,9,b[9]);
  lc.setRow(0,10,b[10]);
  lc.setRow(0,11,b[11]);
  lc.setRow(0,12,b[12]);
  lc.setRow(0,13,b[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  lc.setRow(0,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  lc.setRow(0,8,a[8]);
  lc.setRow(0,9,a[9]);
  lc.setRow(0,10,a[10]);
  lc.setRow(0,11,a[11]);
  lc.setRow(0,12,a[12]);
  lc.setRow(0,13,a[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  lc.setRow(0,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  lc.setRow(0,8,a[8]);
  lc.setRow(0,9,a[9]);
  lc.setRow(0,10,a[10]);
  lc.setRow(0,11,a[11]);
  lc.setRow(0,12,a[12]);
  lc.setRow(0,13,a[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  lc.setRow(0,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  lc.setRow(0,8,a[8]);
  lc.setRow(0,9,a[9]);
  lc.setRow(0,10,a[10]);
  lc.setRow(0,11,a[11]);
  lc.setRow(0,12,a[12]);
  lc.setRow(0,13,a[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  lc.setRow(0,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  lc.setRow(0,8,a[8]);
  lc.setRow(0,9,a[9]);
  lc.setRow(0,10,a[10]);
  lc.setRow(0,11,a[11]);
  lc.setRow(0,12,a[12]);
  lc.setRow(0,13,a[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  lc.setRow(0,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  lc.setRow(0,8,a[8]);
  lc.setRow(0,9,a[9]);
  lc.setRow(0,10,a[10]);
  lc.setRow(0,11,a[11]);
  lc.setRow(0,12,a[12]);
  lc.setRow(0,13,a[13]);
  lc.setRow(0,14,a[14]);
  lc.setRow(0,15,a[15]);
  delay(delaytime1);
}

void loop() { 
  writeOnMatrix();
}

Oder muss ich noch was ändern, denn bei mir hat es nicht geklappt ?

LG

Schau mal in Deine Lib, welche Bedeutung der 4. Parameter von

LedControl lc=LedControl(5,4,3,1);

hat.

Die Bytefolgen würde ich als Konstant definieren.

Gruß Tommy

Moin,

habe soeben nachgeschaut es gibt die Anzahl der Geräte an. Habe es verändert, aber geht noch nicht.

Gruß