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 sogenannte 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.
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);
Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!
- Die beliebtesten Arduino-Projekte von StartHardware
- Inklusive Schaltplan, Beschreibung und Code
- Arduino-Schnellstart-Kapitel
- Kompakter Programmierkurs
#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);
Kapuut, danke
bürne würd niechd hella