Anzeige

Arduino LED-Matrix mit Max7219 Treiber

Du erfährst hier, wie Du eine LED-Matrix mit Arduino steuern kannst. Mit der richtigen LED-Matrix ist das kein Problem.

Ich habe viel Zeit mit dem Programmieren von LED-Matrix-Displays verbracht und wenn ich eines gelernt habe dann ist es, dass es wenig Sinn macht, eine LED-Matrix direkt an Arduino anzuschließen. Die unterschiedlichen LED-Matrix-Arten wie Common Cathode und Common Anode, die unterschiedlichen Pinbelegungen der Displays und das Pin-Multiplexing machen es einem wirklich nicht leicht. Spar dir diesen Aufwand und investiere gleich in eine LED-Matrix mit Steuer-IC wie dem Max7219.

Max7219 LED Matrix

Dieser LED-Treiber ist in der Lage 64 LEDs gleichzeitig zu steuern und benötigt dabei nur der Pins des Arduino Boards. Dabei handelt es sich um die so genannte SPI-Schnittstelle. Hier werden also Daten zwischen Arduino und Max7219 ausgetauscht. Es macht wie gesagt total Sinn, ein LED-Matrix-Modul zu kaufen, das diesen Chip bereits integriert hat. Diese Module kosten mittlerweile fast weniger als die LED-Matrix-Displays allein. Außerdem kann man viele davon hintereinander betreiben.

Schaltplan Arduino LED-Matrix

Der Aufbau ist relativ Simpel. Die LED-Matrix benötigt natürlich 5V+ und GND, darüber hinaus die Verbindung zur SPI-Schnittstelle. Die Pins 10, 11, 12 vom Arduino werden an die Anschlüsse CS, CLK und DIN des LED-Matrix-Displays angeschlossen.

Arduino LED-Matrix Max7219

Das Fritzing-Bauteil findest du übrigens hier: Fritzing Bauteil.

Code

Zum Betreiben des Max7219-ICs benötigst du die LedControl-Programmbibliothek. Klicke in der Arduino-Software auf Sketch>Bibliothek einbinden>Bibliothek verwalten … und trage in das Suchfeld max7219 ein. Installiere die LedControl by Eberhard Fahle Bibliothek in der aktuellen Version. Nun findest du unter Datei>Beispiele>LedControl ein paar Beispiele.

Ansonsten ist hier eine bereinigte Version:

#include "LedControl.h"

LedControl lc=LedControl(12,11,10,1);
byte figure[8]={B00111100,B01000010,B10011001,B10110101,B10111101,B10011001,B01000010,B00111100};

void setup() {
  lc.shutdown(0,false);
  lc.setIntensity(0,8);
  lc.clearDisplay(0);
}

void loop() { 
  for (int i=0; i<8; i++){
    lc.setRow(0,i,figure[i]);
  }
  delay(20);
}  


/*
Weitere interessante Befehle:

lc.setColumn(0,col,B10100000);
lc.setLed(0,row,col,true);

*/

Ich würde mich freuen, wenn du diesen Beitrag bewerten würdest :-)

Durchschnittliche Bewertung 3.7 / 5. Anzahl Bewertungen: 3

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Deine Meinung ist mir sehr wichtig!

Lasse uns diesen Beitrag verbessern!

Wie kann ich den Beitrag verbessern? Was würdest du dir wünschen? Was hat dir gefehlt?

Ich hoffe, der Beitrag hilft dir weiter. Und falls du weitere Fragen hast, stelle sie gern hier im Arduino-Forum.

Du willst noch tiefer in die Materie einsteigen? Dann präsentiere ich dir die neuen E-Books von StartHardware:

  • 20 Lektionen
  • Projektbasiert und kurzweilig
  • Aus den Erfahrungen unzähliger Workshops
  • Sofortiger Download

  • Die beliebtesten Projekte von StartHardware
  • Mit Code, Schaltplan und Erklärungen
  • Fachwissen-Kapitel
  • Sofortiger Download


Willst du lieber ein Buch zum Anfassen? Dann werde mit diesem hier zum Arduino-Experten! Arduino: Kompendium: Elektronik, Programmierung und Projekte* – Damit lernst du alle Tricks!

Schreibe einen Kommentar

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

 

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