// Steuer Program 16X64 LED MATRIX mit SD Karte, audio auswertung und bedientasten //Variablen für Hauptrotinen (loop und timing) int time = 2000; boolean timeFM = 0; int NEXTANZEIGENAME = 1; byte Modus = 0; //Variablen SCREANSAVER byte SCREANSAVERschritt = 0; byte SCb; //Variablen für Audio const int audioin[] = {11,10,9,8,12,13,14,15}; //Pins ton eingang int audiohoch[] = {511,511,511,511,511,511,511,511}; // höchstwert (analogwert) für ton auswertung unsigned int analogREAD[8][20]; // variable für audio in [anzahlpins][vergleichswerte] unsigned int analogausw[8]; // variable zum analog wert auswerten unsigned int minwert[8]; // korektur wert für analog wert auswerten unsigned int analogausw1; // rechen variable zum analog wert auswerten int turn [] = {15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}; byte schritt = 0; //variablen zum aufteilen des analog auswertungs prozeses byte schritt1 = 0; //variable durch die auteilung nötig geworden //Variablen für Matrix const int ledzeile = 64; // LEDs in der Zeile const int ledspalte =16; // LEDs in der Spalte int ledspaltePins[] = {35,36,37,34,31,32,33,30,27,28,29,26,23,24,25,22}; //PINS der Spalte int ledzeilePins[] = {8,9,10,12,11,13}; boolean ledzeilePinsCODE[6][64] = { //Codierung LEDMATRIX ZEILE {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1}, {0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1}, {0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1}, {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}}; boolean Menue[16][64]= { // Menü (1) {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1}, {1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1}, {1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1}, {1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1}, {1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,1}, {1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}}; boolean NEU[16][64]= { // zum automatischen beschreiben (2) {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1}, {1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1}, {1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1}, {1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1}, {1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,1}, {1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1}, {1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}}; boolean Anzreige[16][64]= { //Startanzeige {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,1,0,0,0,1,0,1,0,1,0,0,1,0,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1}, {1,0,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1}, {1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,1,0,0,0,1,0,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0,0,1}, {1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1}, {1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1}, {1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1}, {1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}}; boolean Test[16][64]= { //Alles an (3) {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { // Pins auf output setzen for (int PINNr = 0; PINNr < ledzeile; PINNr++) { pinMode(ledzeilePins[PINNr], OUTPUT); } for (int PINNr = 0; PINNr < ledspalte; PINNr++) { pinMode(ledspaltePins[PINNr], OUTPUT); } // input für tasten pinMode(14, INPUT); pinMode(15, INPUT); pinMode(16, INPUT); pinMode(17, INPUT); pinMode(18, INPUT); pinMode(19, INPUT); pinMode(20, INPUT); pinMode(21, INPUT); // debug Serial.begin(9600); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void loop(){ if (digitalRead(18) == 0) { time = 0; Modus = 4; } else if (digitalRead(19) == 0) { time = 0; Modus = 1; } else if (digitalRead(20) == 0) { time = 0; Modus = 2; } else if (digitalRead(21) == 0) { time = 0; Modus = 3; } if (timeFM == 1 || time >= 1 ){ timing(); } else { switch (Modus) { case 1: AUDIO(); break; case 2: CARD(); break; case 3: TEST(); break; case 4: MENUE(); break; default: SCREANSAVER(); }}} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void MENUE(){ time = 1000; timeFM =1; NEXTANZEIGENAME = 1; timing(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void SCREANSAVER(){ byte i; byte a; for( i = 0; i < 64; ++i){ for( a = 0; a < 16; ++a ){ NEU[a][i] = 0; }} switch (SCREANSAVERschritt) { case 0: for( i = 0; i < 64; ++i){ a = SCb; NEU[a][i] = 1; } time = 50; timeFM =1; NEXTANZEIGENAME = 2; SCb++; if(SCb == 16){ SCb = 0; SCREANSAVERschritt++; } timing(); break; case 1: for( a = 0; a < 16; ++a){ i = SCb; NEU[a][i] = 1; } time = 20; timeFM =1; NEXTANZEIGENAME = 2; SCb++; if(SCb == 64){ SCb = 0; SCREANSAVERschritt++; } timing(); break; case 2: i = SCb; for( a = 0; a < 16; ++a){ NEU[a][i] = 1; i++; } time = 20; timeFM =1; NEXTANZEIGENAME = 2; SCb++; if(i >= 48){ SCb = 0; SCREANSAVERschritt = 0; } timing(); break; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void TEST(){ //Zeigt test anzeige an time = 1000; timeFM =1; NEXTANZEIGENAME = 3; timing(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CARD(){ // noch unfertig timing(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void AUDIO(){ int i; int a; switch (schritt) { case 0:// autiosignal einlesen 12 mal for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; schritt++; timing(); break; case 1:// autiosignal einlesen 10 mal for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; schritt++; timing(); break; case 2:// autiosignal einlesen 10 mal for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1++; for( i = 0; i < 8; ++i ){ analogREAD[i][schritt1] = analogRead(audioin[i]); } schritt1 = 0; schritt++; timing(); break; case 3: // audiosignal auswerten for( i = 0; i < 8; ++i ){ //NULL setzen der variable analogausw[i] = 0; } for( i = 0; i < 8; ++i ){ //VOLL setzen der variable minwert[i] = 1023; } // höchstwerte suchen for( i = 0; i < 8; ++i ){ for( a = 0; a < 12; ++a ){ if (analogausw[i] < analogREAD[i][a]){ analogausw[i] = analogREAD[i][a]; }}} // minimaltwerte suchen for( i = 0; i < 8; ++i ){ for( a = 0; a < 12; ++a ){ if (minwert[i] > analogREAD[i][a]){ minwert[i] = analogREAD[i][a]; }}} //wert korektur for( i = 0; i < 8; ++i ){ analogausw[i] = analogausw[i] - minwert[i]; } schritt++; timing(); break; case 4: //umwandlung in anzeige //anzeige null setzen for( i = 0; i < 64; ++i){ for( a = 0; a < 16; ++a ){ NEU[a][i] = 0; }} //werte übernehmen byte b; byte c = 0; for( i = 0; i < 8; ++i ){ for( b = 0; b < 8; ++b){ for( a = 0; a < 16; ++a ){ analogausw1 = analogausw[i] * 16; unsigned int d = a * audiohoch[i]; if (analogausw1 > d){ byte e = turn[a]; NEU[e][c] = 1; } if (analogausw[i] >= audiohoch[i]){ audiohoch[i] = analogausw[i]; } else{ aodiohoch[i]--; } } c++; } } //werte für übernahme der neuen anzeige setzen NEXTANZEIGENAME = 2; time = 0; timeFM = 1; schritt = 0; timing(); break; }} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void timing(){ if (timeFM == 1){ //anzeige austauschen und LEDS schreibe timeFM = 0; if (NEXTANZEIGENAME == 1){ //auswahl int a; int i; for( a = 0; a < 64; ++a ){ for( i = 0; i < 16; ++i ){ Anzreige[i][a] = Menue[i][a]; }}} else if (NEXTANZEIGENAME == 2){ //auswahl int a; int i; for( a = 0; a < 64; ++a ){ for( i = 0; i < 16; ++i ){ Anzreige[i][a] = NEU[i][a]; }}} else if (NEXTANZEIGENAME == 3){ //auswahl int a; int i; for( a = 0; a < 64; ++a ){ for( i = 0; i < 16; ++i ){ Anzreige[i][a] = Test[i][a]; }}} WriteMatrix(); } else if (time > 0){ //LEDS schreiben und zählen time--; WriteMatrix(); } else if (time == 0 & timeFM == 0){ //LEDS schreiben ohne zählen WriteMatrix(); }} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void WriteMatrix(){//Mtrix schreiben int a; int i; for( a = 0; a < 64; ++a ){ digitalWrite(ledzeilePins[0],ledzeilePinsCODE[0][a]); digitalWrite(ledzeilePins[1],ledzeilePinsCODE[1][a]); digitalWrite(ledzeilePins[2],ledzeilePinsCODE[2][a]); digitalWrite(ledzeilePins[3],ledzeilePinsCODE[3][a]); digitalWrite(ledzeilePins[4],ledzeilePinsCODE[4][a]); digitalWrite(ledzeilePins[5],ledzeilePinsCODE[5][a]); for( i = 0; i < 16; ++i ){ digitalWrite(ledspaltePins[i], Anzreige[i][a]); } delayMicroseconds(20); //ca 400Hz Bildwiederholung for( i = 0; i < 16; ++i ){ digitalWrite(ledspaltePins[i],LOW); } } }