| LED-Matrix 8x8 mit Maxim 7219 und Arduino Nano
LED-Matrix 1088AB
Interne Verschaltung der Leuchtioden bei der Matrix 1088AB
Maxim 7219
Arduino Nano (Nachbau)
Aufgebaute Testschaltung
// Arduino steuert 2 LED-Treiber Max 7219 // mit LED-Matrix 1088AB (8x8) // ---------------------------------------------------------- #include "LedControl.h" LedControl lc=LedControl(2,4,3,2); // ------------------------------------------------- // LedControl (DIN, CLK, CS, Anzahl) / Anschlüsse // lc.shutdown (Adresse, Status) / Modus // lc.setIntensity (Adresse, Wert) / Helligkeit // lc.clearDisplay (Adresse) / Löschen // lc.setRow (Adresse, Reihe, Byte) / Led-Reihe // lc.setColumn (Adresse, Reihe, Byte) / Led-Spalte // ------------------------------------------------- byte BitReihe = B11111111; byte BitReiheH = B00000000; bool Bit; byte R[] = { B01111000, B01000100, B01000100, B01111000, B01100000, B01010000, B01001000, B01000100 }; // ---------------------------------------------------------- void setup() { lc.shutdown(0,false); lc.shutdown(1,false); lc.setIntensity(0,8); lc.setIntensity(1,8); } // ---------------------------------------------------------- void Spalten () { BitReihe = B11111111; for (int i=0; i<8; i++) { lc.clearDisplay(0); lc.clearDisplay(1); lc.setColumn(0,i,BitReihe); lc.setColumn(1,7-i,BitReihe); delay (100); } for (int i=7; i>-1; i--) { lc.clearDisplay(0); lc.clearDisplay(1); lc.setColumn(0,i,BitReihe); lc.setColumn(1,7-i,BitReihe); delay (100); } } // ---------------------------------------------------------- void Reihen () { for (int i=0; i<8; i++) { BitReihe = B11111111; lc.clearDisplay(0); lc.clearDisplay(1); lc.setRow(0,i,BitReihe); lc.setRow(1,7-i,BitReihe); delay (100); } } // ---------------------------------------------------------- void Rconst () { lc.clearDisplay(0); lc.clearDisplay(1); for (int i=0; i<8; i++) { lc.setRow(0,i,R [i]); lc.setRow(1,7-i,R [i]); } delay (1000); } // ---------------------------------------------------------- void Rinvert () { lc.clearDisplay(0); lc.clearDisplay(1); for (int i=0; i<8; i++) { for (int j=0; j<8; j++) { BitReihe = B00000000; BitReiheH = R[j]; for (int k=0; k<=i; k++) { Bit = bitRead (BitReiheH, k); bitWrite (BitReihe, 7-k, Bit); } lc.setRow(0, j, BitReihe); lc.setRow(1, 7-j, BitReihe); } } delay (1000); } // ---------------------------------------------------------- void Rscroll () { lc.clearDisplay(1); for (int i=0; i<15; i++) { for (int j=0; j<8; j++) { BitReihe = B00000000; BitReiheH = R[j]; for (int k=0; k<8; k++) { Bit = bitRead (BitReiheH, k); bitWrite (BitReihe, i-7+k, Bit); } lc.setRow(0, j, BitReihe); } delay(200); } lc.clearDisplay(0); for (int i=14; i>-1; i--) { for (int j=0; j<8; j++) { BitReihe = B00000000; BitReiheH = R[j]; for (int k=0; k<8; k++) { Bit = bitRead (BitReiheH, k); bitWrite (BitReihe, i-7+k, Bit); } lc.setRow(1, j, BitReihe); } delay(200); } } // ---------------------------------------------------------- void loop() { Spalten (); Reihen (); Rconst (); Rinvert (); Rscroll (); } KurzvideoKurzvideo Weitere Themen:
|