Diese Seite ist eine Ergänzung zum YouTube Video https://www.youtube.com/watch?v=NlO2ft_HsFs, (hier gibt es die Texte als COPY und PASTE) wo ich die Programmierung des 8x8 LED Matrix mit dem Arduino erkläre. Ich verwende eine 64 LED Matrix die über einen MAX7219 angesteuert wird.
Ich verwende die Ardublock Version von LetsGoIng
Code im Globalen Bereich einfügen:
#include "LedControl.h
LedControl lc=LedControl(12,11,10,1);
Code im Setup einfügen
lc.shutdown(0,false);
lc.setIntensity(0,9);
lc.clearDisplay(0);
Code im Loop einfügen
Eine einzelne SPALTE setzen
lc.setColumn(0, 0, 0b11011011);
Eine einzelnen REIHE setzen.
lc.setRow(0,0, 0b11111111);
Das gesamte Display setzen
byte a[8]= {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};
lc.setRow(0,0,a[0]); lc.setRow(0,1,a[1]); lc.setRow(0,2,a[2]); lc.setRow(0,3,a[3]); lc.setRow(0,4,a[4]); lc.setRow(0,5,a[5]); lc.setRow(0,6,a[6]); lc.setRow(0,7,a[7]);
Ein weiters Display setzen
byte b[8]= {B11000000, B11000000, B00000000, B00000000, B00000000, B00000000, B00000011, B00000011};
lc.setRow(0,0,b[0]); lc.setRow(0,1,b[1]); lc.setRow(0,2,b[2]); lc.setRow(0,3,b[3]); lc.setRow(0,4,b[4]); lc.setRow(0,5,b[5]); lc.setRow(0,6,b[6]); lc.setRow(0,7,b[7]);
Hier die Verdrahtung für den Arduino Würfel mit 8x8 Led Matrix.
Hier noch der Arduino Code für den Würfel:
#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
long generator = 0;
int zufall = 0;
void setup() {
pinMode(2, INPUT_PULLUP);
lc.shutdown(0,false);
lc.setIntensity(0,9);
lc.clearDisplay(0);
}
void loop() {
generator = ( generator + 1 );
if (( generator >= 101 )) {
generator = 0;
}
if (!( digitalRead(2) )) {
zufall = map ( generator , 0 , 100 , 0 , 5 ) ;
if (( zufall == 0 )) {
lc.clearDisplay(0);
byte a[8]= {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000 };
lc.setRow(0,0,a[0]);
lc.setRow(0,1,a[1]);
lc.setRow(0,2,a[2]);
lc.setRow(0,3,a[3]);
lc.setRow(0,4,a[4]);
lc.setRow(0,5,a[5]);
lc.setRow(0,6,a[6]);
lc.setRow(0,7,a[7]);
delay( 700 );
}
if (( zufall == 1 )) {
lc.clearDisplay(0);
byte b[8]= {B11000000, B11000000, B00000000, B00000000, B00000000, B00000000, B00000011, B00000011 };
lc.setRow(0,0,b[0]);
lc.setRow(0,1,b[1]);
lc.setRow(0,2,b[2]);
lc.setRow(0,3,b[3]);
lc.setRow(0,4,b[4]);
lc.setRow(0,5,b[5]);
lc.setRow(0,6,b[6]);
lc.setRow(0,7,b[7]);
delay( 700 );
}
if (( zufall == 2 )) {
lc.clearDisplay(0);
byte c[8]= {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011};
lc.setRow(0,0,c[0]);
lc.setRow(0,1,c[1]);
lc.setRow(0,2,c[2]);
lc.setRow(0,3,c[3]);
lc.setRow(0,4,c[4]);
lc.setRow(0,5,c[5]);
lc.setRow(0,6,c[6]);
lc.setRow(0,7,c[7]);
delay( 700 );
}
if (( zufall == 3 )) {
lc.clearDisplay(0);
byte d[8]= {B11000011, B11000011, B00000000, B00000000, B00000000, B00000000, B11000011, B11000011};
lc.setRow(0,0,d[0]);
lc.setRow(0,1,d[1]);
lc.setRow(0,2,d[2]);
lc.setRow(0,3,d[3]);
lc.setRow(0,4,d[4]);
lc.setRow(0,5,d[5]);
lc.setRow(0,6,d[6]);
lc.setRow(0,7,d[7]);
delay( 700 );
}
if (( zufall == 4 )) {
lc.clearDisplay(0);
byte e[8]= {B11000011, B11000011, B00000000, B00011000, B00011000, B00000000, B11000011, B11000011};
lc.setRow(0,0,e[0]);
lc.setRow(0,1,e[1]);
lc.setRow(0,2,e[2]);
lc.setRow(0,3,e[3]);
lc.setRow(0,4,e[4]);
lc.setRow(0,5,e[5]);
lc.setRow(0,6,e[6]);
lc.setRow(0,7,e[7]);
delay( 700 );
}
if (( zufall == 5 )) {
lc.clearDisplay(0);
byte f[8]= {B11000011, B11000011, B00000000, B11000011, B11000011, B00000000, B11000011, B11000011};
lc.setRow(0,0,f[0]);
lc.setRow(0,1,f[1]);
lc.setRow(0,2,f[2]);
lc.setRow(0,3,f[3]);
lc.setRow(0,4,f[4]);
lc.setRow(0,5,f[5]);
lc.setRow(0,6,f[6]);
lc.setRow(0,7,f[7]);
delay( 700 );
}
}
}