Arduino Lektion 8: Max7219 8×8 LED Shield

Heute möchte ich gerne das Max7219 8×8 LED Shield Präsentieren.
Dieses Shield kann für wenig Geld über Amazon.de bezogen werden ca 3-5€.

Wenn dieses Shield geliefert wird ist es komplett zerlegt d.h. man muss es selbst zusammenlöten. Aber dieses ist auch mit geringen Kentnissen lösbar.

Max7219 8x8 LED Shield, zerlegt
Max7219 8×8 LED Shield

Wenn dieses zusammen gesetzt ist welches in ca. 30min lösbar sein sollte, sieht dieses Shield folgendermaßen aus.

Max7219 8x8 LED Shield, zusammen gesetzt
Max7219 8×8 LED Shield

 Der Schaltplan

Zum Schaltplan braucht es nicht viel Erwähnung, die PIN’s VSS,GND,DIN, CS, CLK werden wiefolgt mit dem Sainsmart Mega2560 R3 verbunden.

VCC – 5V
GND – GND
DIN – digitaler PIN 8
CS – digitaler PIN 9
CLK – digitaler PIN 10

Max7219 8x8 LED Shield, Anschlussplan
Max7219 8×8 LED Shield, Anschlussplan

Die oben genannten Einstellungen können auch beliebig angepasst werden, jedoch muss dann auch das Beispiel angepasst werden. Ich habe diese Einstellungen so belassen da ich „nur“ das Shield an dem Microcontroller habe.

Der Quellcode

Für dieses Shield benötigt man die MaxLib welche aus dem GitHub von Arduinobymyself geladen werden kann. Hier sollte man sich nicht an der Bezeichnung „16×8“ beirren lassen. Das mitgelieferte Beispiel war in meinem Falle nicht sofort lauffähig und bedarf einiger kleiner Änderungen welche ich später erläutere.

Einbinden der MaxLib

Wenn man die Zip Datei herruntergeladen hat dann kopiert man diese in ein beliebiges Verzeichniss. Jetzt muss diese Bibliothek in die Arduino IDE eingebunden werden. Wie dieses erfolgt habe ich im Tutorial „Arduino IDE, Einbinden einer Bibliothek“ beschrieben.

Verwenden der MAXLIB

Nachdem wir die Arduino IDE geöffnet UND die benötigte Bibliothek eingebunden haben können wir die einfach mit :

einbinden.

Das Beispiel

Wie schon angesprochen werden die Bibliotheken in den meisten fällen mit Beispielen zu den Shields ausgeliefert, wie auch in diesem Falle. Da ich mich erstmal mit dem Shield vertraut machen wollte und später in meinem Großen Projekt einbinden wollte habe ich mir das Beispiel genommen und kleinere Änderungen vorgenommen.

Als erstes habe ich diese riesen Array Deklaration welche benötigt wird um die Zeichen auf dem Shield auszugeben in eine separate Datei ausgelagert.

Die Datei statics.h

Die nachfolgenden Zeichen können alle auf dem Shield dargestellt werden möchte man nun eigene oder zusätzliche Zeichen haben so muss man das Array „einfach“ erweitern. In der MaxMatrix liegt eine Microsoft Excel Arbeitsmappe womit dieses relativ einfach zu erledigen ist.

Einstellungen zu den PIN’s und dem Shield

Wie zuvor angesprochen kann das Shield an beliebige PIN’s angeschlossen werden (Außer natürlich VCC & GND.)
Diese Einstellungen hier sind aus dem Beispiel übernommen.

Mit der Zeile

erstellen wir ein Objekt der Klasse MaxMatrix, nun können wir über die Variable „m“ auf die öffentlichen Routinen der MaxMatrix Bibliothek zugreifen.

Als Member Variable setzen wir unsere darzustellende Message als char Array.

Die Setup Methode für das Sketch enthält die Initalisierung der MaxMatrix sowie die Einstellung für die Übertragungsgeschwindigkeit.
Optional kann hier auch die Leucht intensität der LED’s eingestellt werden.
(Werte von 0-15 sind hier wählbar.)

In der Loop Methode wird nun unsere Message auf die MaxMatrix geschrieben
(In einer Endlosschleife.).

Nun noch unsere Hilfsmethoden welche die Message (ist ein Char Array) zerlegen und aus dem vorher definierten Char Array (prog_uchar CH[], in der Datei statics.h) die entsprechenden Adressen für die LED’s raus sucht.

 

Das Video

Max7219 8x8 LED Matrix am Saintsmart Mega2360

 

Hier nun wie gewohnt der Quellcode zum Download:

Verwandte Beiträge

4 Gedanken zu „Arduino Lektion 8: Max7219 8×8 LED Shield

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.