Hier erstmal der Code, Schaltbild muss ich noch erstellen
#include <MsTimer2.h>
int letter [148] [4] = {{1,1,1,1},
{16,16,16,16},
{256,256,256,256},
{4096,4096,4096,4096},
{8192,8192,8192,8192},
{16384,16384,16384,16384},
{32768,32768,32768,32768},
{2048,2048,2048,2048},
{128,128,128,128},
{8,8,8,8},
{4,4,4,4},
{2,2,2,2},
{32,32,32,32},
{512,512,512,512},
{1024,1024,1024,1024},
{64,64,64,64},
{4096,4096,4096,4096}, // 2
{8448,8448,8448,8448},
{16912,16912,16912,16912},
{33825,33825,33825,33825},
{2114,2114,2114,2114},
{132,132,132,132},
{8,8,8,8},
{0,0,0,1}, // 3
{0,0,32,0},
{0,1024,0,0},
{32768,0,0,0},
{0,0,0,65535}, //4
{0,0,65535,0},
{0,65535,0,0},
{65535,0,0,0},
{0,0,0,1}, // 5
{0,0,0,16},
{0,0,0,256},
{0,0,0,4096},
{0,0,0,8192},
{0,0,0,16384},
{0,0,0,32768},
{0,0,0,2048},
{0,0,0,128},
{0,0,0,8},
{0,0,0,4},
{0,0,0,2},
{0,0,0,32},
{0,0,0,512},
{0,0,0,1024},
{0,0,0,64},
{0,0,64,0},
{0,0,1024,0},
{0,0,512,0},
{0,0,32,0},
{0,0,2,0},
{0,0,4,0},
{0,0,8,0},
{0,0,128,0},
{0,0,2048,0},
{0,0,32768,0},
{0,0,16384,0},
{0,0,8192,0},
{0,0,4096,0},
{0,0,256,0},
{0,0,16,0},
{0,0,1,0},
{0,1,0,0}, // 64
{0,16,0,0},
{0,256,0,0},
{0,4096,0,0},
{0,8192,0,0},
{0,16384,0,0},
{0,32768,0,0},
{0,2048,0,0},
{0,128,0,0},
{0,8,0,0},
{0,4,0,0},
{0,2,0,0},
{0,32,0,0},
{0,512,0,0},
{0,1024,0,0},
{0,64,0,0},
{64,0,0,0}, // 80
{1024,0,0,0},
{512,0,0,0},
{32,0,0,0},
{2,0,0,0},
{4,0,0,0},
{8,0,0,0},
{128,0,0,0},
{2048,0,0,0},
{32768,0,0,0},
{16384,0,0,0},
{8192,0,0,0},
{4096,0,0,0},
{256,0,0,0},
{16,0,0,0},
{1,0,0,0},
{1,0,0,0}, // 96
{0,0,0,1632},
{0,0,1632,1632},
{0,26214,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{4080,4080,1632,1632},
{26214,26214,1632,1632},
{1,0,0,0}, // 117
{0,0,51,51},
{0,0,13056,13056},
{0,0,52224,52224},
{0,0,204,204},
{204,204,0,0},
{52224,52224,0,0},
{13056,13056,0,0},
{51,51,0,0}, // 125
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903},
{0,1632,1632,0},
{63903,36873,36873,63903}, //147
{65535, 65535, 65535, 65535}}; //148
byte steps =148;
int taktPin =13;
int speicherPin=12;
int datenPin= 11;
byte col1 = 5;
byte col2 = 4;
byte col3 = 3;
byte col4 = 2;
int wert[5] = {0};
int ddelay = 5000;
int ddelay2 = 75;
void setup(){
pinMode(taktPin, OUTPUT);
pinMode(speicherPin, OUTPUT);
pinMode(datenPin, OUTPUT);
pinMode(col1, OUTPUT);
pinMode(col2, OUTPUT);
pinMode(col3, OUTPUT);
pinMode(col4, OUTPUT);
MsTimer2::set(2, anzeige);
MsTimer2::start();
}
void anzeige(){
digitalWrite(speicherPin, LOW);
shiftOut(datenPin, taktPin, MSBFIRST, wert[1]>>8);
shiftOut(datenPin, taktPin, MSBFIRST, wert[1]&255);
digitalWrite(speicherPin, HIGH);
digitalWrite(col1, LOW);
digitalWrite(col2, LOW);
digitalWrite(col3, LOW);
digitalWrite(col4, HIGH);
delayMicroseconds(ddelay);
digitalWrite(col4, LOW);
digitalWrite(speicherPin, LOW);
shiftOut(datenPin, taktPin, MSBFIRST, wert[2]>>8);
shiftOut(datenPin, taktPin, MSBFIRST, wert[2]&255);
digitalWrite(speicherPin, HIGH);
digitalWrite(col1, LOW);
digitalWrite(col2, LOW);
digitalWrite(col3, HIGH);
digitalWrite(col4, LOW);
delayMicroseconds(ddelay);
digitalWrite(col3, LOW);
digitalWrite(speicherPin, LOW);
shiftOut(datenPin, taktPin, MSBFIRST, wert[3]>>8);
shiftOut(datenPin, taktPin, MSBFIRST, wert[3]&255);
digitalWrite(speicherPin, HIGH);
digitalWrite(col1, LOW);
digitalWrite(col2, HIGH);
digitalWrite(col3, LOW);
digitalWrite(col4, LOW);
delayMicroseconds(ddelay);
digitalWrite(col2, LOW);
digitalWrite(speicherPin, LOW);
shiftOut(datenPin, taktPin, MSBFIRST, wert[4]>>8);
shiftOut(datenPin, taktPin, MSBFIRST, wert[4]&255);
digitalWrite(speicherPin, HIGH);
digitalWrite(col1, HIGH);
digitalWrite(col2, LOW);
digitalWrite(col3, LOW);
digitalWrite(col4, LOW);
delayMicroseconds(ddelay);
digitalWrite(col1, LOW);
}
void loop(){
for (int i=0; i<steps; i++){
wert[1] = letter*[0];*
_ wert[2] = letter*[1];_
_ wert[3] = letter[2];
wert[4] = letter[3];
delay(ddelay2);
}
}*_