Mein Paket… …ein MAX7219 Dot Matrix LED Bausatz

Heute kam mein Paket…

…mit einem MAX7219 Dot Matrix LED Bausatz an. Diesen Bausatz hatte ich über einen ebay-Shop bestellt.

(MAX7219 Dot Matrix LED Bausatz für 4,90 € inkl. Versand).

CIMG3516Der Bausatz mit einem MAX7219 LED Treiber sowie einem 8*8 Dot Matrix LED Modul enthält alle benötigten Teile und macht insgesamt einen sehr guten Eindruck. Auch der Bestückungsaufdruck ist völlig in Ordnung. Über 4 Bohrungen kann das Modul mit einem Trägerboard verbunden werden. Bei genauerer Betrachtung stellte sich allerdings heraus, dass auf dem Transportweg vermutlich etwas arg viel Druck auf die Verpackung ausgeübt worden war.

Defekte_TeileDiverse Beinchen am LED-Modul, dem IC und Sockel waren verbogen. Mit einer Zange und etwas Geduld konnte ich das jedoch wieder richten.

 

 

 

Die technischen Daten des Moduls in Kurzform

  • Vcc:                            Typ. 5,0V
  • Betriebstemperatur:   0°C – + 70°C
  • LED-Farbe:                Rot
  • Abmessungen:           50mm * 32mm * 15mm

Die Schaltung und der Aufbau

Drawing_MAX7219_LED8X8KitDie Schaltung selbst ist nicht wirklich aufregend. Sie besteht aus dem MAX7219 IC und dem LED Matrix Modul. Das Datenblatt des ICs kann direkt von MAXIM heruntergeladen werden. Der Elko C2 dient hier der Stabilisierung bzw. Glättung  der 5V Versorgungsspannung. Zusätzlich gibt es noch den Keramikkondensator C1, der die hochfrequenteren Anteile der beim Schalten der LEDs entstandenen Spikes reduziert. Der Widerstand R1 dient der Strombegrenzung der LEDs. Details dazu sind auch im MAX7219 Datenblatt zu finden. Ansonsten sind nur noch die beiden 5-poligen abgewinkelten Stiftleisten angeschlossen. Die Stiftleiste mit der Pinbezeichnung DIN (Data In) direkt am IC liegend wird wie folgt mit dem Arduino verbunden:

  • VCC  =  5V
  • GND  =  GND
  • DIN    =  Digital Pin 8
  • CS     =  Digital Pin9
  • CLK   =  Digital Pin10

Testaufbau_MAX7219_Dot_Matrix_ModulWerden mehrere dieser LED Matrix Module kaskadiert, so wird die auf dem Modul vorhandene 2. Stiftleiste (hier oben im Bild, mit der Pinbezeichnung DOUT an Pin 3) einfach mit der 5-poligen Stiftleiste des nächsten Moduls (die Leiste mit Pin3 DIN) verbunden. Die anderen Kontakte wie VCC, GND, CS und CLK können dabei auf gleiche Weise per Daisy Chain Verfahren mit einem 5-pol. Dupontkabel einfach durchverbunden werden. Bis zu 8 Module mit dem MAX7219 können so kaskadiert werden.

Beispielcode für die Arduino IDE1.xx

Beim Stöbern nach einem Testsketch bin ich bei instructables.com auf Marcelo Moraes Library gestoßen. Die Library mit einem von mir minimal angepassten Testsketch kann hier heruntergeladen werden:arduino-icon

Nach dem herunterladen der komprimierten Datei, muss diese zuerst entpackt werden. Der komplette Ordner „MAXMATRIX“ mit den darin enthaltenen Dateien und dem Unterordner „examples“ muss dann entweder in den Arduino Projektpfad z. B. unter Eigene Dateien\Arduino\libraries oder in den Installationspfad z. B. unter Programme\Arduino\libraries kopiert werden. Gegebenenfalls müssen die Pfade hier der eigenen Umgebung entsprechend angepasst werden. Ich persönlich favorisiere dafür inzwischen den Projektpfad unter Eigene Dateien, da sich ein schnelles Backup zwischendurch mal eben viel einfacher realisieren lässt und es keine Vermischung zwischen den Libraries der originalen Arduino Installation und den selbst erstellten bzw. heruntergeladenen Libraries gibt.

Der Beispielsketch

In der Arduino IDE sind jetzt unter Datei|Beispiele|MAXMATRIX zwei Beispiele zu finden. Der Sketch MAX7219_2_LED_DOT_MATRIX ist minimal von mir modifiziert und entspricht noch weitgehend dem Original.

Nach dem Einbinden der Library MaxMatrix.h gleich am Anfang des Sketches erfolgt die Definition der verschiedenen ASCII Zeichen. Die Speicherung erfolgt über ein Array im Flash des Programmspeichers.

  • PROGMEM prog_uchar CH[] = {
  • 3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
  • 1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
  • …usw.
  • };

In der Variablen maxInUse wird die Anzahl der angeschlossenen Module eingetragen.

  • int maxInUse = 1;    //change this variable to set how many MAX7219’s

Verschiedene Texte werden in den dann folgenden Arrays

  • char string1[ ] = „abc“;

usw. gespeichert.

Im Setup kann mit m.setIntensity(0) die Helligkeit des Displays vorgegeben werden. Zulässig sind hier Werte von 0 bis 15. Bei dem von mir verwendeten Display ist der Wert 0 mit der dunkelsten Stufe völlig ausreichend.

  • m.setIntensity(0); // dot matix intensity 0-15

Mit diesem Testprogramm lassen sich beliebige Texte in Klein- und Großbuchstaben sowie diversen Sonderzeichen auf dem Display durchlaufend darstellen. Leider steht mir bisher nur eines dieser Module zur Verfügung. Die Kaskadierung mehrerer Module konnte ich daher noch nicht testen.

Es gibt von mir jedoch inzwischen einen ersten Prototyp einer LED Matrix Wortuhr basierend auf dem hier vorgestellten LED Matrix Modul und der Library von Marcelo Moraes.

Hier meine Zusammenfassung

Bauteil:             MAX7219 Dot Led Matrix Module
Artikelnummer: ohne
Lieferant:          ebay
Verkäufer:         emall-foryou
Preis:                4,90 €
Lieferzeit:          etwa 3 Wochen
Versandkosten: inklusive
Sonstiges:         leichter Transportschaden
Bewertung:        bin trotzdem sehr zufrieden

 Agenda zur Bewertung

*=Ganz Mies            **=Mies        ***=Akzeptabel      ****=Gut      *****=Sehr gut

Verkäufer:                                            ****

Produkt:                                             *****

Bei einer etwas besseren Verpackung hätte ich dem Verkäufer auch gern die volle Punktzahl gegeben.

Olaf Meier

Arduino Hannover       http://Arduino-Hannover.de

 

*Info: In diesem Beitrag verweisen orangefarbende Links auf Affiliates.

17 Gedanken zu „Mein Paket… …ein MAX7219 Dot Matrix LED Bausatz

  1. Hello friend? …

    Cara saw your project Matrix LED on YOUTUBE and thought you might help me.

    I have a project to build a marquee with LED animations for DAFT PUNK helmet. Just not Manjo anything about programming, I have the code + -, only that it is for only one matrix and that appears in 4 matrix of LEDs. Could you help me, or know who can fi? … Vlw …

    More details here >>> https://docs.google.com/document/d/16XsNl_EW-ubifXAQrx_xkWqIPFTISYQl0KZWc6ELeI0/edit?usp=sharing

  2. Hi,
    mit Linux (Kubuntu 14.04) gibt es bei Deinem Beispielprogramm 1 einen Fehler beim Kompilieren!
    Ich habe dann eine andere Bibliothek mit Beispielsketch gefunden und daraufhin in Zeile 31

    PROGMEM prog_uchar CH[] = {

    durch

    const prog_uchar CH[] PROGMEM = {

    ersetzt, was dann zum Erfolg geführt hat. Der Compiler hatte genau das angemeckert:

    MAX7219_1_LED_DOT_MATRIX.ino:31:23: error: variable ‘CH’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’

    Ansonsten vielen Dank für Deinen Blogbeitrag!

    Daniel

  3. Sehr geehrter Herr Meier!

    Vor kurzem habe ich mir auch solch ein Teil gekauft.
    Jetzt möchte ich den 1.Beispiel-Sketch auf den Arduino hochladen, um diesen zu testen. Leider kommt beim kompilieren des Sketches folgende Fehlermeldung:

    MAX7219_1_LED_DOT_MATRIX:193: error: ‚CH‘ was not declared in this scope
    ‚prog_uchar‘ does not name a type

    Was hat dies uz bedeuten? Könnten sie mir eventuell helfen, wie das Problem behoben werden könnte?
    Ich bin selber Programmiereinsteiger und würde mich sehr über eine Antwort freuen.

    Mit freundlichen Grüßen, Timo!

    Email: timo.53881@web.de

  4. Hallo Herr Meier,
    der Beitrag liegt ein wenig zurück, dennoch würde ich mich über eine Antwort aufgrund Ihrer Erfahrung sehr freuen.

    Ich möchte eine Wetterstation aufbauen. Über Aussensensoren werden die Winddaten (Richtung und Geschwindigkeit) sowie Temperatur und rel Luftfeuchtigkeit per MC aufbereitet und über Funk (433 Mhz) an den Empfänger gesendet.
    Der MC Empfänger dekodiert die Signale und leitet diese an den MAX 7219 weiter. MAX 7219 steuert die LEDs (Windrichtung Kompasrose und Geschwindigkeit als LED Balken)
    Alles funktioniert soweit gut aber nur solange der der Sender MC direkt mit dem Empfänger MC verbunden ist.
    Sobald ich die Funkmodule einsetze passiert folgendes:
    Der MAX 7219 ( auf der Empfandseite) produziert (mit der refressh sequenz (890 Hz) derartige Spikes die auf dem MC Input Port die zu Fehlinterpretationen führen.

    Die Leitung vom Funkempfänger zum MC ist geschirmt.
    Die Leitungen von MAX 77219 zu den LEDs sind lang (15 cm) und unabgeschirmt.
    Die Leitungen (load, clk, data) vom MC zum Max 7219 sind unabgeschirmt und ca 10 cm lang.
    Die Spikes sind in der Versorgungspannung kaum sichtbar.

    Kann es sein dasss alle LED Leitungen ( also alle 8 Kathoden und alle Segment Leitungen) abgeschirmt ausgeführt werden müssen (aufgrund der Länge von bis zu 25 cm) ?

    Kann es sein dass die Treiber vom MAX 7219 soviel EMV induzieren und den MC Input lahmzulegen?

    Wenn Sie mir einige Hinweise aufgrund Ihrer Erfahrung liefern könnten wäre ich Ihnen sehr dankbar.

    Last not least: Ob Sie mich mit „Werner und DU ansprechen oder über Herr Smidt und SIE ist für mich offen.
    Viele Grüße
    Werner Smidt

    • Hallo Werner,
      lasse uns gern beim Du bleiben. 3 Ideen habe ich zu Deinem geschilderten Problem. Vorab folgender Hintergrund:
      Die LED Matrixanzeige wird im Multiplexbetrieb angesteuert. Das bedeutet, dass eine relativ hohe Störstrahlung durch die laufenden Schaltvorgänge erzeugt wird. Diese Störstrahlung wird in den Raum abgestrahlt! In einem meiner Projekte war es einem DCF77 Empfänger aus gleichem Grunde nicht möglich zu synchronisieren. Erst entsprechender Abstand zur Anzeige brachte etwas Verbesserung. Daher folgende Vorschläge:
      1. Abschirmung der Rückseite der Anzeige durch z. B. Kupferplatinenreste, soweit halt machbar
      2. Den Abstand des Pendelempfängers in z. B. 1-2m Abstand zur Anzeige montieren und die Betriebsspannung abblocken. Möglichst abgeschirmtes Kabel verwenden.
      3. Die Sendeleistung durch erhöhen der Versorgungsspannung des Senders (meine max. sind hier 12V) erhöhen. Ausserdem ist es sinnvoll in solchen Fällen die Datenrate so gering wie möglich zu gestalten.

      Viel Erfolg!
      Olaf

  5. Hallo
    Bei mir ist das Problem das sich die LED Matrix nicht verändert. Egal welcher Sketch ich Hochlade es funktioniert nicht obwohl ich die Libary richtig hinzugefügt habe. Kann der Fehler sein das der IC kaputt ist.
    Vielen Dank im Voraus für deine Antwort

  6. Hallo Olaf.
    Habe mir ein MAX7219 8×8 LED Punkt Matrix Modul mit 4 Stück 8*8 Matrix-LED (4 in 1 Display) gekauft.
    Dein Sketch läuft, nur die Orientierung ist quer zur Modulausrichtung.
    Die einzelnen Zeichen müßten um 90° gegen den Uhrzeigersinn gedreht werden. Dann sollte alles vernünftig aussehen.
    Ein mechanisches Drehen der Module ist nicht besonders sinnvoll.
    Entweder Zeichen drehen oder neuen Zeichensatz erzeugen.
    Hast du oder sonst wer da vielleicht einen Rat?
    Danke vorab.

Schreibe einen Kommentar

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

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.