#include <Arduino.h>
#include <FastLED.h>
#include <ESP32Time.h>
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
// LCD
LiquidCrystal_I2C LCD(39, 16, 2);
bool backlight = false;
//clock
ESP32Time Uhr(0);
unsigned int hour;
unsigned int minute;
unsigned int second;
unsigned int day;
unsigned int month;
unsigned int year;
unsigned int offsetff = 0;
bool fastforward = true;
//display
#define MAX_MILLIWATTS 0
#define VOLTAGE 5
#define BRIGHTNESS 255
#define LED_PIN 4
#define COLOR_ORDER RGB
#define CHIPSET WS2812B
#define kMatrixWidth 16
#define kMatrixHeight 16
#define NUM_LEDS ((kMatrixWidth) * (kMatrixHeight))+2
CRGB leds[NUM_LEDS];
long backcol = 0x200000; // Farben: grün, rot, blau
long frontcol = 0x60ffff;
long specialcol = 0x00ff00;
long xmascol = 0x00ff60;
byte FGred;
byte FGgreen;
byte FGblue;
byte BGred;
byte BGgreen;
byte BGblue;
bool newcol = true;
//Laufschrift
String currenttext = "";
String runningtext = " Tom grüßt Euch! ";
// String runningtext = " ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ ";
// String runningtext = " abcdefghijklmnopqrstuvwxyzäöüß ";
// String runningtext = " äöüß?.,!0123456789%&/=+-* ";
// String runningtext = " ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüß?.,!0123456789%&/=+-* ";
unsigned int fillrunninglength = 0;
String lauftext[kMatrixHeight-2];
String letterstring[kMatrixHeight-2];
unsigned int runningstep = 0;
unsigned int runningspeed = 20;
// Tasten
#define RTASTE 33
#define GTASTE 25
unsigned int Rbuttontimer = 0;
unsigned int Rbuttontimer2 = 0;
unsigned int Gbuttontimer = 0;
bool Rbutton = false;
bool Gbutton = false;
// Timer und Einstellmodi
unsigned int timer = 0; // timer für mode 1&2 anzeigeaktualisierung
unsigned int timer2 = 0;
unsigned int buttontimer = 0;
unsigned int einstellparam = 0 ;
unsigned int initval;
unsigned int lowlim;
unsigned int highlim;
//
bool tomspecial = false ;
unsigned int tomspecialtimer = 0;
unsigned long tomspecialtemp1;
unsigned long tomspecialtemp2;
unsigned int alarmphase = 0;
double centerx = 2.001;
double centery = 0.001;
double dist = 2.001;
unsigned int mode = 1;
// mode = 1: WordClock
// mode = 2: Laufschrift
// mode = 3: Einstellung Uhr
// mode = 4: Einstellung Farbe
// mode = 5: bunter Alarm
// mode = 6: Alarmanzeige
// Alarme
// Typen: Stunde + Minute, erzeugt Uhr und Text und Effekt im Wechsel
// Monat und Tag, erzeugt Laufschrift (Geburtstage allgemein)
// Monat und Tag erzeugt WC-Text (spezielle Geburtstage...) (siehe WordClock)
// Stunde ggf. Minute gibt Tages Botschafen auf dem WC-Display (Mahlzeit)(siehe WordClock)
unsigned int hmalarmchecktimer = 0;
int alarmdiff = 0;
int hmalarmCount = 2; // Anzahl der zu prüfenden Alarme (die ersten - auch die nicht aktiven)
String hmalarmtext = "";
int hmalarmmode = 1; // Anzeige Untermodus
unsigned int hmalarmmodetimer = 0;
int hmalarmActive[5] = {1,0,0,0,0}; // wird ausgewertet
int hmalarmRuns[5] = {0,0,0,0,0}; // hat ausgelöst
int hmalarmQuit[5] = {0,0,0,0,0}; // wurde quittiert?
int hmalarmDuration [5] = {60,60,60,60,60}; // Alarmiert wie lange
int hmalamrmHH[5] = {16, 17, 17, 0, 0}; // Stunde
int hmalamrmMM[5] = {48, 3, 20, 0, 0}; // Minute
String hmalamrmText[5] = {"Alarm1", "Alarm2", "Alarm3", "Alarm4", "Alarm5"};
String dmtmptext = "";
unsigned int dmtmpfillrunninglength = 0;
unsigned int dmtmprunningstep = 0;
unsigned int dmtmprunningspeed = 20;
unsigned int dmalarmchecktimer = 0;
unsigned int dmalarmruntimer = 0;
int dmalarmCount = 5; // Anzahl der zu prüfenden Alarme (die ersten - auch die nicht aktiven)
int dmalarmmode = 1; // Anzeige Untermodus
unsigned int dmalarmmodetimer = 0;
int dmalarmActive[5] = {1,1,0,1,1}; // wird ausgewertet
int dmalamrmDD[5] = {22, 24, 31, 1, 14}; // Tag
int dmalamrmMM[5] = {4, 2, 12, 9, 2}; // Monat
String dmalamrmText[5] = {"Tom", "Stephie", "Tobias", "Annika", "Julian"};
void setup() {
FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness( BRIGHTNESS );
if (MAX_MILLIWATTS != 0) FastLED.setMaxPowerInVoltsAndMilliamps(VOLTAGE,MAX_MILLIWATTS);
for(int i=0; i<NUM_LEDS; i++) leds[i]=(0,0,0);
delay(1000);
Serial.begin(9600);
Wire.begin();
pinMode(RTASTE, INPUT_PULLUP);
pinMode(GTASTE, INPUT_PULLUP);
Uhr.setTime( 2, 2, 15, 22, 3, 2024); // ss,min,hh, dd,mm,yyyy
Serial.println (Uhr.getDateTime(true));
LCD.init(); LCD.clear(); LCD.noBacklight(); backlight = false;
// LCD.setCursor(0, 0); LCD.print("."); delay(1000); LCD.noBacklight();
}
void loop()
{
if ( digitalRead(RTASTE) ) Rbuttontimer=millis();
if (!digitalRead(RTASTE) && Rbutton ==false && millis() - Rbuttontimer > 20 ) Rbutton = true;
if ( digitalRead(RTASTE) && Rbutton ==true ) {
Rbutton=false ;
if (backlight == true) {LCD.noBacklight(); LCD.clear(); backlight = false; }
if (mode == 6) {
for (int i=0; i<hmalarmCount; i++) { hmalarmQuit[i] = 1; hmalarmRuns[i] = 0;}
hmalarmtext = "";
}
mode ++;
if (mode>5) {mode=1;}
gettime();
Serial.print("Modus: "); Serial.println(mode);
Serial.print("ymd:");Serial.print(year);Serial.print(month);Serial.print(day);
Serial.print(" h:");Serial.print(hour);Serial.print(" m:");Serial.print(minute);
Serial.print(" offset:");Serial.println(offsetff);
}
if (mode ==1 && timer < millis() ) {
gettime();
wordclock_show(hour, minute);
timer = millis () + 1000;
}
if (mode ==2 && timer < millis() ) {
if(fillrunninglength==0) fillrunningstring(runningtext);
runningshow();
timer = millis()+runningspeed;
}
if (mode == 5 && timer < millis() ) {
alarmboost();
timer = millis()+runningspeed;
}
if (mode == 3 ) {
if (backlight == false) {LCD.backlight(); backlight = true; }
configuration();
}
if (mode == 4 ) {
if (backlight == false) {LCD.backlight(); backlight = true;}
configurationcolor();
}
if (tomspecial && tomspecialtimer < millis()){
tomspecialtemp1 = frontcol;
tomspecialtemp2 = backcol;
frontcol = 0xb0ff00; // GRB
backcol = 0x000000; // GRB
showlogo();
frontcol = tomspecialtemp1 ;
backcol = tomspecialtemp2 ;
delay(2000);
tomspecialtimer = millis()+365000;
}
/*
if (tomspecial && tomspecialtimer < millis()){
leds[255] = backcol;
for (int i=255; i>=0; i=i-1){
for (int k=0; k<=i;k++){
leds[k] = frontcol;
if (k>0) leds[k-1] = backcol;
FastLED.show();
}}
tomspecialtimer = millis()+500000;
}
*/
// Alarme checken
if (hmalarmchecktimer < millis() ){
if(hmcheckalarm()) {
mode = 6;
Serial.println("mode6");
hmalarmmode = 1;
timer=0;
fillrunninglength=0;
fillrunningstring(hmalarmtext);
runningstep = 0;
}
hmalarmchecktimer = millis() + 10000;
if (fastforward) hmalarmchecktimer = millis() + 1000;
}
if (mode == 6 && timer < millis() ) {
if (hmalarmmodetimer < millis()){
hmalarmmode++;
if (hmalarmmode >3 ) hmalarmmode = 1;
Serial.print(hmalarmmode);
hmalarmmodetimer = millis()+4000;
}
if (hmalarmmode == 2) {
runningshow();
timer = millis()+runningspeed;
}
if (hmalarmmode == 3) {
alarmboost();
timer = millis()+runningspeed;
}
if (hmalarmmode == 1) {
gettime();
wordclock_show(hour, minute);
timer = millis () + 1000;
}
}
if (dmalarmchecktimer < millis() ){
for (int i = 0; i<= dmalarmCount, i++;){
if(dmalamrmDD[i] == day && dmalamrmMM[i] == month) {
dmtmptext = currenttext;
dmtmpfillrunninglength = fillrunninglength;
dmtmprunningstep = runningstep;
fillrunninglength=0;
runningstep = 0;
fillrunningstring(dmalamrmText[i]);
Serial.print("DM-Alarm: "); Serial.println(dmalamrmText[i]);
dmalarmruntimer = millis();
while (millis() < dmalarmruntimer + 30000 ){
runningshow();
delay(runningspeed);
}
}
}
dmalarmchecktimer = millis() + 600000;
currenttext = dmtmptext;
fillrunninglength = dmtmpfillrunninglength ;
runningstep = dmtmprunningstep ;
}
} // Ende der loop
bool hmcheckalarm(){
for (int i=0; i<hmalarmCount; i++){
if (hmalarmActive[i]=true) {
alarmdiff = minute + 60 * hour - hmalamrmHH[i] *60 - hmalamrmMM[i] ;
alarmdiff += 1440;
alarmdiff %= 1440;
Serial.print(alarmdiff); Serial.print(" x ");
if (alarmdiff < hmalarmDuration[i] && hmalarmQuit[i] == 0 && hmalarmRuns[i] == 0){
Serial.println(hmalamrmText[i]);
hmalarmRuns[i] = 1;
hmalarmtext += hmalamrmText[i];
hmalarmtext += " ";
return true;
}
if (alarmdiff > hmalarmDuration[i]) hmalarmQuit[i] = 0;
}
}
return false;
}
// Alarmboost = buntes Licht, verwendet für Alarme bzw als mode 3
void alarmboost(){
centerx = 2 * sin (float(alarmphase)/13) + float(kMatrixHeight) / 2 - 0,5;
centery = 2 * cos (float(alarmphase)/13) + float(kMatrixWidth) / 2 - 0,5 ;
for (int i=0; i<kMatrixHeight; i++){
for (int k=0; k<kMatrixWidth; k++){
dist = 255 / 14 * sqrt(sq(centerx - i)+sq(centery - i));
leds[i*16+k] = CHSV ((byte(dist+alarmphase)), 255-int(dist/5), 255-int(dist/2));
}
}
alarmphase++;
FastLED.show();
}
// Wordclock, klassisch
void wordclock_show (byte hh, byte mm){
byte esist[] = {5,17,18,20,21,22};
byte uhr[] = {3,185,186,187};
byte fuenf1[] = {4,42,43,44,45};
byte zehn1[] = {4,49,50,51,52};
byte zwanzig[] = {7,24,25,26,27,28,29,30};
byte viertel[] = {7,72,73,74,75,76,77,78};
byte dreiviertel[] = {11,68,69,70,71,72,73,74,75,76,77,78};
byte nach[] = {4,91,92,93,94};
byte vor[] = {3,88,89,90};
byte halb[] = {4,97,98,99,100};
byte null[] = {4,101,102,103,104};
byte ein[] = {3,107,108,109};
byte eins[] = {4,107,108,109,110};
byte zwei[] = {4,105,106,107,108};
byte drei[] = {4,161,162,163,164};
byte vier[] = {4,123,124,125,126};
byte fuenf[] = {4,147,148,149,150};
byte sechs[] = {5,113,114,115,116,117};
byte sieben[] = {6,117,118,119,120,121,122};
byte acht[] = {4,165,166,167,168};
byte neun[] = {4,154,155,156,157};
byte zehn[] = {4,151,152,153,154};
byte elf[] = {3,145,146,147};
byte zwoelf[] = {5,169,170,171,172,173};
byte vorm[] = {4,229,230,231,238};
byte nachm[] = {4,209,210,211,212};
byte mittag[] = {6,232,233,234,235,236,237};
byte morgens[] = {7,193,194,195,196,197,198,199};
byte abends[] = {6,200,201,202,203,204,205};
byte nachts[] = {6,209,210,211,212,213,214};
byte bald[] = {4,38,39,40,41};
byte xmas[] = {5,216,217,218,219,220};
byte birthday[] = {13,33,34,35,36,37,54,55,56,57,58,59,60,61};
byte jutta[] = {18,33,34,35,36,37,54,55,56,57,58,59,60,61,82,83,84,85,86};
byte uli[] = {16,33,34,35,36,37,54,55,56,57,58,59,60,61,188,189,190};
byte tom[] = {16,33,34,35,36,37,54,55,56,57,58,59,60,61,225,226,227};
byte stephie[] = {20,33,34,35,36,37,54,55,56,57,58,59,60,61,177,178,179,180,181,182,183};
byte andy[] = {17,33,34,35,36,37,54,55,56,57,58,59,60,61,137,138,139,140};
byte christina[] = {16,33,34,35,36,37,54,55,56,57,58,59,60,61,129,130,131,132,133,134,135,136,137};
byte md = mm - (mm % 5);
for(int i=0; i<NUM_LEDS; i++) leds[i]=backcol;
if (mm % 5 >=1) leds[renum(0)]=frontcol;
if (mm % 5 >=2) leds[renum(15)]=frontcol;
if (mm % 5 >=3) leds[renum(255)]=frontcol;
if (mm % 5 ==4) leds[renum(240)]=frontcol;
if (md == 0 || md == 30) {for (byte i=1; i<=esist[0];i++) leds[renum(esist[i])]=frontcol;}
if (md == 0) {for (byte i=1; i<=uhr[0];i++) leds[renum(uhr[i])]=frontcol;}
if (md == 5 ||md == 25 ||md == 35||md == 55) {for (byte i=1; i<=fuenf1[0];i++) leds[renum(fuenf1[i])]=frontcol;}
if (md == 10 ||md == 50) {for (byte i=1; i<=zehn1[0];i++) leds[renum(zehn1[i])]=frontcol;}
if (md == 20 ||md == 40) {for (byte i=1; i<=zwanzig[0];i++) leds[renum(zwanzig[i])]=frontcol;}
if (md == 15 ) {for (byte i=1; i<=viertel[0];i++) leds[renum(viertel[i])]=frontcol;}
if (md == 45 ) {for (byte i=1; i<=dreiviertel[0];i++) leds[renum(dreiviertel[i])]=frontcol;}
if (md == 5 || md == 10 || md == 20 || md == 35 ) {for (byte i=1; i<=nach[0];i++) leds[renum(nach[i])]=frontcol;}
if (md == 55|| md == 50 || md == 40 || md == 25 ) {for (byte i=1; i<=vor[0];i++) leds[renum(vor[i])]=frontcol;}
if (md == 25|| md == 30 || md == 35 ) {for (byte i=1; i<=halb[0];i++) leds[renum(halb[i])]=frontcol;}
if (hh == 0 && (md <=10 || md == 20)) {for (byte i=1; i<=null[0];i++) leds[renum(null[i])]=frontcol;}
if (hh == 0 && (md >=25 || md == 15)) {for (byte i=1; i<=eins[0];i++) leds[renum(eins[i])]=frontcol;}
if ((hh % 12) == 1 && (md == 5 || md == 10 || md == 20)) {for (byte i=1; i<=eins[0];i++) leds[renum(eins[i])]=frontcol;}
if ((hh % 12) == 1 && (md ==0)) {for (byte i=1; i<=ein[0];i++) leds[renum(ein[i])]=frontcol;}
if ((hh % 12) == 1 && (md >=25 || md == 15 )) {for (byte i=1; i<=zwei[0];i++) leds[renum(zwei[i])]=frontcol;Serial.print("2");}
if ((hh % 12) == 2 && (md <=10 || md == 20 )) {for (byte i=1; i<=zwei[0];i++) leds[renum(zwei[i])]=frontcol;Serial.print("2.2x");}
if ((hh % 12) == 2 && (md >=25 || md == 15 )) {for (byte i=1; i<=drei[0];i++) leds[renum(drei[i])]=frontcol;}
if ((hh % 12) == 3 && (md <=10 || md == 20 )) {for (byte i=1; i<=drei[0];i++) leds[renum(drei[i])]=frontcol;}
if ((hh % 12) == 3 && (md >=25 || md == 15 )) {for (byte i=1; i<=vier[0];i++) leds[renum(vier[i])]=frontcol;}
if ((hh % 12) == 4 && (md <=10 || md == 20 )) {for (byte i=1; i<=vier[0];i++) leds[renum(vier[i])]=frontcol;}
if ((hh % 12) == 4 && (md >=25 || md == 15 )) {for (byte i=1; i<=fuenf[0];i++) leds[renum(fuenf[i])]=frontcol;}
if ((hh % 12) == 5 && (md <=10 || md == 20 )) {for (byte i=1; i<=fuenf[0];i++) leds[renum(fuenf[i])]=frontcol;}
if ((hh % 12) == 5 && (md >=25 || md == 15 )) {for (byte i=1; i<=sechs[0];i++) leds[renum(sechs[i])]=frontcol;}
if ((hh % 12) == 6 && (md <=10 || md == 20 )) {for (byte i=1; i<=sechs[0];i++) leds[renum(sechs[i])]=frontcol;}
if ((hh % 12) == 6 && (md >=25 || md == 15 )) {for (byte i=1; i<=sieben[0];i++) leds[renum(sieben[i])]=frontcol;}
if ((hh % 12) == 7 && (md <=10 || md == 20 )) {for (byte i=1; i<=sieben[0];i++) leds[renum(sieben[i])]=frontcol;}
if ((hh % 12) == 7 && (md >=25 || md == 15 )) {for (byte i=1; i<=acht[0];i++) leds[renum(acht[i])]=frontcol;}
if ((hh % 12) == 8 && (md <=10 || md == 20 )) {for (byte i=1; i<=acht[0];i++) leds[renum(acht[i])]=frontcol;}
if ((hh % 12) == 8 && (md >=25 || md == 15 )) {for (byte i=1; i<=neun[0];i++) leds[renum(neun[i])]=frontcol;}
if ((hh % 12) == 9 && (md <=10 || md == 20 )) {for (byte i=1; i<=neun[0];i++) leds[renum(neun[i])]=frontcol;}
if ((hh % 12) == 9 && (md >=25 || md == 15 )) {for (byte i=1; i<=zehn[0];i++) leds[renum(zehn[i])]=frontcol;}
if ((hh % 12) == 10 && (md <=10 || md == 20 )) {for (byte i=1; i<=zehn[0];i++) leds[renum(zehn[i])]=frontcol;}
if ((hh % 12) == 10 && (md >=25 || md == 15 )) {for (byte i=1; i<=elf[0];i++) leds[renum(elf[i])]=frontcol;}
if ((hh % 12) == 11 && (md <=10 || md == 20 )) {for (byte i=1; i<=elf[0];i++) leds[renum(elf[i])]=frontcol;}
if ((hh % 12) == 11 && (md >=25 || md == 15 )) {for (byte i=1; i<=zwoelf[0];i++) leds[renum(zwoelf[i])]=frontcol;}
if ( hh == 12 && (md <=10 || md == 20 )) {for (byte i=1; i<=zwoelf[0];i++) leds[renum(zwoelf[i])]=frontcol;}
switch (hh) {
case 22: case 23: case 0: case 1: case 2: case 3: case 4: case 5:
for (byte i=1; i<=nachts[0];i++) leds[renum(nachts[i])]=frontcol; break;
case 6: case 7: case 8: case 9:
for (byte i=1; i<=morgens[0];i++) leds[renum(morgens[i])]=frontcol;break;
case 10: case 11:
for (byte i=1; i<=vorm[0];i++) leds[renum(vorm[i])]=frontcol;
for (byte i=1; i<=mittag[0];i++) leds[renum(mittag[i])]=frontcol; break;
case 12: case 13:
for (byte i=1; i<=mittag[0];i++) leds[renum(mittag[i])]=frontcol; break;
case 14: case 15: case 16: case 17:
for (byte i=1; i<=nach[0];i++) leds[renum(nach[i])]=frontcol;
for (byte i=1; i<=mittag[0];i++) leds[renum(mittag[i])]=frontcol; break;
case 18: case 19: case 20: case 21:
for (byte i=1; i<=nachts[0];i++) leds[renum(nachts[i])]=frontcol; break;
}
/*
// birthdays
if (day == 24 && month == 2) {for (byte i=1; i<=tom[0];i++) leds[renum(tom[i])]=specialcol;}
if (day == 24 && month == 2) {for (byte i=1; i<=christina[0];i++) leds[renum(christina[i])]=specialcol;}
if (day == 22 && month == 4) {for (byte i=1; i<=stephie[0];i++) leds[renum(stephie[i])]=specialcol;}
if (day == 28 && month == 8) {for (byte i=1; i<=andy[0];i++) leds[renum(andy[i])]=specialcol;}
if (day == 4 && month == 6) {for (byte i=1; i<=uli[0];i++) leds[renum(uli[i])]=specialcol;}
if (day == 13 && month == 8) {for (byte i=1; i<=jutta[0];i++) leds[renum(jutta[i])]=specialcol;}
// namenlose Geburtstage
if (day == 16 && month == 5) {for (byte i=1; i<=birthday[0];i++) leds[renum(birthday[i])]=specialcol;} //Magda
// xmas
if (day <= 23 && month == 12) {for (byte i=1; i<=bald[0];i++) leds[renum(bald[i])]=CHSV(43,250,day*9+20);}
if (day <= 23 && month == 12) {for (byte i=1; i<=xmas[0];i++) leds[renum(xmas[i])]=CHSV(43,250,day*9+20);}
if (day == 24 && month == 12) {for (byte i=1; i<=xmas[0];i++) leds[renum(xmas[i])]=CHSV(43,250,255);}
if (day == 25 && month == 12) {for (byte i=1; i<=xmas[0];i++) leds[renum(xmas[i])]=CHSV(43,250,200);}
if (day == 25 && month == 12) {for (byte i=1; i<=xmas[0];i++) leds[renum(xmas[i])]=CHSV(43,250,120);}
*/
FastLED.show();
}
void gettime(){
minute = Uhr.getMinute();
hour = Uhr.getHour(true);
day = Uhr.getDay() ;
month = Uhr.getMonth()+1;
year = Uhr.getYear();
second = Uhr.getSecond();
Serial.print("gettime ymd:");Serial.print(year);Serial.print(month);Serial.print(day);
Serial.print(" h:");Serial.print(hour);Serial.print(" m:");Serial.print(minute);Serial.print(" offset:");Serial.print(offsetff);
if (fastforward == true && (mode == 1 || mode == 6) ) {
minute += offsetff;
hour += (minute/60);
hour = hour % 24;
minute = minute % 60;
offsetff += 4;
offsetff %= 1439;
Serial.print(" offset in ff:");Serial.print(offsetff);Serial.print(" h:");Serial.print(hour);
Serial.print(" m:");Serial.print(minute);
}
Serial.println(".");
}
// xy-Trafos
byte renum (byte x) {
return x;
}
byte renumxy (byte x, byte y) {
return 256-16*x+y;
}
//
// Laufschriftanzeige
void runningshow(){
for(int i=0; i<NUM_LEDS; i++) leds[i]=backcol;
for (int i=0;i<kMatrixHeight-2;i++){
for (int k=0;k<kMatrixWidth;k++){
if (lauftext[i][(k+runningstep)% (fillrunninglength-1)]!=' ') leds[renumxy(i+2,k)]=frontcol;
}}
runningstep++;
FastLED.show();
}
// Einstellen der Zeit
void configuration(){
if (timer2 < millis()) {clockondisplay('x'); timer2 = millis()+1000; Serial.print("wait ");}
//Beginn der Einstellungen - Drücken von Grün beginnt Sequenz
if ( digitalRead(GTASTE) ) Gbuttontimer=millis();
if (!digitalRead(GTASTE) && Gbutton ==false && millis() - Gbuttontimer > 20 ) Gbutton = true;
if ( digitalRead(GTASTE) && Gbutton ==true ) {
Gbutton=false ;
gettime();
einstellparam = 0;
while(einstellparam<=6){ // solange nicht alles eingestellt ist geht's nicht raus
if ( digitalRead(GTASTE) ) Gbuttontimer=millis();
if (!digitalRead(GTASTE) && Gbutton ==false && millis() - Gbuttontimer > 20 ) Gbutton = true;
if ( (digitalRead(GTASTE) && Gbutton ==true) || einstellparam ==0) {
Gbutton=false ;
einstellparam++;
LCD.setCursor(11,1); LCD.print(" ");
switch (einstellparam) {
case 1: // year
clockondisplay('Y');
LCD.setCursor(11,0); LCD.print("Set Y");
lowlim = 2001;
highlim = 2099;
initval=year;
break;
case 2: // month
clockondisplay('M');
LCD.setCursor(11,0); LCD.print("Set M");
lowlim = 1;
highlim = 12;
initval=month;
break;
case 3: // day
clockondisplay('D');
LCD.setCursor(11,0); LCD.print("Set D");
lowlim = 1;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) highlim = 31;
if (month == 4 || month == 6 || month == 9 || month == 11 ) highlim = 30;
if (month == 2 && year%4 == 0 ) highlim = 29;
if (month == 2 && year%4 != 0 ) highlim = 28;
initval=day;
break;
case 4: // hour
clockondisplay('h');
LCD.setCursor(11,0); LCD.print("Set h");
lowlim = 0;
highlim = 23;
initval=hour;
break;
case 5: // minute
clockondisplay('m');
LCD.setCursor(11,0); LCD.print("Set m");
lowlim = 0;
highlim = 59;
initval=minute;
break;
case 6: // second
clockondisplay('s');
LCD.setCursor(11,0); LCD.print("Set s");
lowlim = 0;
highlim = 0;
initval = 0;
break;
}
LCD.setCursor(11,1);
if (initval<10) LCD.print("0");
LCD.print(initval);
}
if ( digitalRead(RTASTE) ) Rbuttontimer=millis();
if (!digitalRead(RTASTE) && Rbutton ==false && millis() - Rbuttontimer > 20 ) {
Rbutton = true; Rbuttontimer2 = millis() - Rbuttontimer+2; }
if ( digitalRead(RTASTE) && Rbutton ==true ) {
Rbutton=false ;
if (Rbuttontimer2 < 200 ) {initval++; Serial.print ("+"); }
else {initval--;Serial.print ("-"); }
Serial.print (Rbuttontimer2);
Serial.print (" ");
if (initval>highlim) initval=lowlim;
if (initval<lowlim) initval=highlim;
Serial.print (initval);
LCD.setCursor(11,1);
if (initval<10) LCD.print("0");
LCD.print(initval);
switch (einstellparam) {
case 1: // year
year = initval;
break;
case 2: // month
month = initval;
break;
case 3: // day
day = initval;
break;
case 4: // hour
hour = initval;
break;
case 5: // minute
minute = initval;
break;
case 6: // second
second = initval;
break;
}
}
}
Uhr.setTime(second, minute, hour, day, month, year);
LCD.setCursor(11,0); LCD.print(" ");
LCD.setCursor(11,1); LCD.print(" ");
Serial.print("new time: ");
Serial.println (Uhr.getDateTime(true));
offsetff = 0;
}
}
// LCD-Anzeige bei der Zeiteinstellung
void clockondisplay(byte blinkset){
LCD.setCursor(0,0);
if(day < 10) LCD.print("0");
LCD.print(day);
LCD.print(".");
if(month < 10) LCD.print("0");
LCD.print(month);
LCD.print(".");
LCD.print(year);
LCD.setCursor(0,1);
if(hour < 10) LCD.print("0");
LCD.print(hour);
LCD.print(":");
if(minute < 10)
LCD.print("0");
LCD.print(minute);
LCD.print(":");
if(second < 10)
LCD.print("0");
LCD.print(second);
switch (blinkset) {
case 'h':
LCD.setCursor(0,1); LCD.print("__");
break;
case 'm':
LCD.setCursor(3,1); LCD.print("__");
break;
case 's':
LCD.setCursor(6,1); LCD.print("__");
break;
case 'D':
LCD.setCursor(0,0); LCD.print("__");
break;
case 'M':
LCD.setCursor(3,0); LCD.print("__");
break;
case 'Y':
LCD.setCursor(6,0); LCD.print("____");
break;
default:
break;
}
}
// Helferlein zur zeitanzeige auf dem Display
void printcol(byte col){
if(col < 16) LCD.print("0");
LCD.print(col,HEX);
}
// LCD-Anzeige zur Farbeinstellung und Helferlein
void colorondisplay(byte blinkset){
long2byte();
LCD.setCursor(0, 0);
LCD.print("B:");
printcol(BGgreen); LCD.print(":");
printcol(BGred); LCD.print(":");
printcol(BGblue);
LCD.setCursor(0, 1);
LCD.print("F:");
printcol(FGgreen); LCD.print(":");
printcol(FGred); LCD.print(":");
printcol(FGblue);
switch (blinkset) {
case 'g':
LCD.setCursor(2,0); LCD.print("__");
break;
case 'r':
LCD.setCursor(5,0); LCD.print("__");
break;
case 'b':
LCD.setCursor(8,0); LCD.print("__");
break;
case 'G':
LCD.setCursor(2,1); LCD.print("__");
break;
case 'R':
LCD.setCursor(5,1); LCD.print("__");
break;
case 'B':
LCD.setCursor(8,1); LCD.print("__");
break;
default:
break;
}
}
// Konversion Farben zur Einstellung
void long2byte(){
BGblue = backcol % 256;
BGred = ((backcol-BGblue)/256)%256;
BGgreen = ((backcol-BGblue-BGred*256)/65536)%256;
FGblue = frontcol % 256;
FGred = ((frontcol-BGblue)/256)%256;
FGgreen = ((frontcol-BGblue-FGred*256)/65536)%256;
}
void byte2long(){
backcol = BGgreen*65536 + BGred*256 + BGblue;
frontcol = FGgreen*65536 + FGred*256 + FGblue;
}
// Einstellen der Farben
void configurationcolor(){
showlogo(); colorondisplay('x');
//Beginn der Einstellungen - Drücken von Grün beginnt Sequenz
if ( digitalRead(GTASTE) ) Gbuttontimer=millis();
if (!digitalRead(GTASTE) && Gbutton ==false && millis() - Gbuttontimer > 20 ) Gbutton = true;
if ( digitalRead(GTASTE) && Gbutton ==true ) {
Gbutton=false ;
einstellparam = 0;
while(einstellparam<=6){ // solange nicht alles eingestellt ist geht's nicht raus
if ( digitalRead(GTASTE) ) Gbuttontimer=millis();
if (!digitalRead(GTASTE) && Gbutton ==false && millis() - Gbuttontimer > 20 ) Gbutton = true;
if ( (digitalRead(GTASTE) && Gbutton ==true) || einstellparam ==0) {
Gbutton=false ;
einstellparam++;
LCD.setCursor(11,0); LCD.print("g r b");
LCD.setCursor(11,1); LCD.print(" ");
switch (einstellparam) {
case 1: // BG green
colorondisplay('g');
lowlim = 0;
highlim = 256;
initval=BGgreen;
break;
case 2: // BG red
colorondisplay('r');
lowlim = 0;
highlim = 256;
initval=BGred;
break;
case 3: // BG blue
colorondisplay('b');
lowlim = 0;
highlim = 256;
initval=BGblue;
break;
case 4: // FG green
colorondisplay('G');
lowlim = 0;
highlim = 256;
initval=FGgreen;
break;
case 5: // FG red
colorondisplay('R');
lowlim = 0;
highlim = 256;
initval=FGred;
break;
case 6: // FG blue
colorondisplay('B');
lowlim = 0;
highlim = 256;
initval=FGblue;
break;
}
LCD.setCursor(12,1);
if (initval<100) LCD.print(" ");
if (initval<10) LCD.print(" ");
LCD.print(initval);
}
if ( digitalRead(RTASTE) ) Rbuttontimer=millis();
if (!digitalRead(RTASTE) && Rbutton ==false && millis() - Rbuttontimer > 20 ) {
Rbutton = true; Rbuttontimer2 = millis() - Rbuttontimer+2; }
if ( digitalRead(RTASTE) && Rbutton ==true ) {
Rbutton=false ;
if (Rbuttontimer2 < 200 ) {initval+=9; Serial.print ("+"); }
else {initval-=6;Serial.print ("-"); }
if (initval>highlim) initval=initval+lowlim-highlim;
if (initval<lowlim) initval=initval+highlim-lowlim;
LCD.setCursor(12,1);
if (initval<100) LCD.print(" ");
if (initval<10) LCD.print(" ");
LCD.print(initval);
switch (einstellparam) {
case 1: // Bred
BGgreen = initval;
break;
case 2: // Bgreen
BGred = initval;
break;
case 3: // Bblue
BGblue = initval;
break;
case 4: // Gred
FGgreen = initval;
break;
case 5: // Ggreen
FGred = initval;
break;
case 6: // Gblue
FGblue = initval;
break;
}
byte2long();
showlogo();
}
}
colorondisplay('x');
LCD.setCursor(11,0); LCD.print(" ");
LCD.setCursor(11,1); LCD.print(" ");
showlogo();
}
}
// Tom-Logo zur Farbeinstellung und anderem
void showlogo(){
byte logo[] = {64,5,6,7,8,20,21,25,26,35,42,53,59,68,71,73,75,84,91,100,103,104,105,107,117,123,
133,139,147,150,154,161,162,163,166,167,168,169,173,176,177,178,187,188,189,
192,194,195,203,205,206,207,211,212,218,219,222,223,227,228,234,237,238,244,253};
for(int i=0; i<NUM_LEDS; i++) leds[i]=backcol;
for(int i=1; i<=logo[0];i++) leds[renum(logo[i])]=frontcol;
FastLED.show();
}
// Laufschrifttext-Erstellung
void fillrunningstring(String text){
currenttext = text;
fillrunninglength = 0;
for (int i=0;i<=kMatrixHeight-2;i++){
lauftext[i] = "";
}
for (int i=0; i<text.length();i++){
// Serial.print(text[i]); Serial.print(text[i],DEC);
switch(text[i]){
case 'A':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xx ";
lauftext[9] +=" xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxxxxxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'B':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxxxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xxxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'C':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxxx ";
lauftext[9] +=" xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'D':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'E':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxxxx ";
lauftext[9] +="xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xxxxx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xxxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'F':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxxxx ";
lauftext[9] +="xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xxxxx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'G':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxxx ";
lauftext[9] +=" xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xx xxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case 'H':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxxxxxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'I':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +="xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 5;
break;
case 'J':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" xx ";
lauftext[0] +=" xxx ";
fillrunninglength += 8;
break;
case 'K':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'L':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx ";
lauftext[9] +="xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xxxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'M':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xxx xxx ";
lauftext[8] +="xx xxxx xx ";
lauftext[7] +="xx xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 11;
break;
case 'N':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xxx xx ";
lauftext[8] +="xxxx xx ";
lauftext[7] +="xx xx xx ";
lauftext[6] +="xx xx xx ";
lauftext[5] +="xx xx xx ";
lauftext[4] +="xx xxxx ";
lauftext[3] +="xx xxx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case 'O':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxx ";
lauftext[9] +=" xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case 'P':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxxxxx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'Q':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxx ";
lauftext[9] +=" xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case 'R':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxxxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'S':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxxx ";
lauftext[9] +="xx x ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +=" xxxx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +="x xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'T':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxxxxx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'U':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'V':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +=" xx xx ";
lauftext[3] +=" xxxx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'W':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx x xx ";
lauftext[4] +=" xx xx xx xx ";
lauftext[3] +=" xxx xxx ";
lauftext[2] +=" xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 14;
break;
case 'X':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +=" xx xx ";
lauftext[7] +=" xxxx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xxxx ";
lauftext[4] +=" xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'Y':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +=" xx xx ";
lauftext[7] +=" xxxx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'Z':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxxxxx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xxxxxx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +="xxxxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 132: // Ä
lauftext[13]+=" ";
lauftext[12]+=" xx xx ";
lauftext[11]+=" ";
lauftext[10]+=" xx ";
lauftext[9] +=" xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxxxxxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 150: // Ö
lauftext[13]+=" ";
lauftext[12]+=" xx xx ";
lauftext[11]+=" ";
lauftext[10]+=" xxx ";
lauftext[9] +=" xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case 156: // Ü
lauftext[13]+=" ";
lauftext[12]+=" xx xx ";
lauftext[11]+=" ";
lauftext[10]+="xx xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'a':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xxxxx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'b':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+="xx ";
lauftext[10]+="xx ";
lauftext[9] +="xx ";
lauftext[8] +="xxxxx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'c':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xxxx ";
lauftext[7] +=" xx ";
lauftext[6] +="xx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'd':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" xx ";
lauftext[10]+=" xx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xxxxx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'e':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xxxx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xxxxxxx ";
lauftext[4] +="xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'f':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" xxxxx ";
lauftext[10]+=" xx ";
lauftext[9] +="xx ";
lauftext[8] +="xxxxx ";
lauftext[7] +="xx ";
lauftext[6] +="xx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +="xx ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'g':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xx xx ";
lauftext[1] +=" xx ";
lauftext[0] +=" xxxx ";
fillrunninglength += 9;
break;
case 'h':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+="xx ";
lauftext[10]+="xx ";
lauftext[9] +="xx ";
lauftext[8] +="xxxxxx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'i':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+="xx ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 3;
break;
case 'j':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" xx ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" xx ";
lauftext[0] +="xx ";
fillrunninglength += 5;
break;
case 'k':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'l':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+="xx ";
lauftext[10]+="xx ";
lauftext[9] +="xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +=" xxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 5;
break;
case 'm':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx xx ";
lauftext[7] +="xxxxxxxxxx ";
lauftext[6] +="xx xx xx ";
lauftext[5] +="xx xx xx ";
lauftext[4] +="xx xx xx ";
lauftext[3] +="xx xx xx ";
lauftext[2] +="xx xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 11;
break;
case 'n':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +="xxxxxxx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'o':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'p':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +="xxx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xxx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +="xx ";
lauftext[0] +="xx ";
fillrunninglength += 9;
break;
case 'q':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xx xx ";
lauftext[7] +=" xx xxx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xxx ";
lauftext[2] +=" xx xx ";
lauftext[1] +=" xx ";
lauftext[0] +=" xx ";
fillrunninglength += 9;
break;
case 'r':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xxx ";
lauftext[5] +="xx ";
lauftext[4] +="xx ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 's':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" xxxxx ";
lauftext[7] +="xx x ";
lauftext[6] +="xx ";
lauftext[5] +=" xxxx ";
lauftext[4] +=" xx ";
lauftext[3] +="x xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 't':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xx ";
lauftext[9] +=" xx ";
lauftext[8] +="xxxxxxx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case 'u':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +=" xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'v':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'w':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx xx ";
lauftext[7] +="xx xx xx ";
lauftext[6] +="xx xx xx ";
lauftext[5] +="xx xx xx ";
lauftext[4] +="xx xx xx ";
lauftext[3] +=" xx xx xx ";
lauftext[2] +=" x x ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 11;
break;
case 'x':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +=" xxxx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xxxx ";
lauftext[3] +=" xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'y':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +=" xxxx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 'z':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +="xxxxxxxx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +="xxxxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case ' ':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" ";
lauftext[7] +=" ";
lauftext[6] +=" ";
lauftext[5] +=" ";
lauftext[4] +=" ";
lauftext[3] +=" ";
lauftext[2] +=" ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 6;
break;
case 164: // ä
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xx xx ";
lauftext[9] +=" ";
lauftext[8] +=" xxxxx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 188 : // 'ü':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xx xx ";
lauftext[9] +=" ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +=" xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 182: // ö
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xx xx ";
lauftext[9] +=" ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 159: // 'ß':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxx ";
lauftext[9] +=" xx x ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +="xx ";
lauftext[0] +="xx ";
fillrunninglength += 9;
break;
case '!':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xx ";
lauftext[9] +="xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xx ";
lauftext[5] +=" ";
lauftext[4] +=" ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 4;
break;
case '.':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" ";
lauftext[7] +=" ";
lauftext[6] +=" ";
lauftext[5] +=" ";
lauftext[4] +=" ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 4;
break;
case '?':
lauftext[13]+=" ";
lauftext[12]+=" xx ";
lauftext[11]+=" xx xx ";
lauftext[10]+="xx xx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case ',':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" ";
lauftext[7] +=" ";
lauftext[6] +=" ";
lauftext[5] +=" ";
lauftext[4] +=" ";
lauftext[3] +="xx ";
lauftext[2] +=" x ";
lauftext[1] +="x ";
lauftext[0] +=" ";
fillrunninglength += 4;
break;
case 38: // &
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" xxxx ";
lauftext[8] +="xx xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +=" xxxx ";
lauftext[5] +=" xx xx ";
lauftext[4] +="xx xx x ";
lauftext[3] +="xx xx ";
lauftext[2] +=" xxxxx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case 37: // %
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx xx ";
lauftext[2] +="xx xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 11;
break;
case 47: // /
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 10;
break;
case '=': // =
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" ";
lauftext[7] +="xxxxx ";
lauftext[6] +=" ";
lauftext[5] +="xxxxx ";
lauftext[4] +=" ";
lauftext[3] +=" ";
lauftext[2] +=" ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 6;
break;
case '+': // +
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" x ";
lauftext[7] +=" x ";
lauftext[6] +="xxxxx ";
lauftext[5] +=" x ";
lauftext[4] +=" x ";
lauftext[3] +=" ";
lauftext[2] +=" ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 6;
break;
case '-': // -
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" ";
lauftext[8] +=" ";
lauftext[7] +=" ";
lauftext[6] +="xxxxx ";
lauftext[5] +=" ";
lauftext[4] +=" ";
lauftext[3] +=" ";
lauftext[2] +=" ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 6;
break;
case '*': // *
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +=" x ";
lauftext[8] +="x x x ";
lauftext[7] +=" x x x ";
lauftext[6] +=" xxx ";
lauftext[5] +="xxxxxxx ";
lauftext[4] +=" xxx ";
lauftext[3] +=" x x x ";
lauftext[2] +="x x x ";
lauftext[1] +=" x ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case '0':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +="xx xx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +=" xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '1':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xx ";
lauftext[9] +=" xxxx ";
lauftext[8] +=" xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 8;
break;
case '2':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxx ";
lauftext[9] +=" xx xx ";
lauftext[8] +="x xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +=" xx ";
lauftext[2] +="xxxxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '3':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxxx ";
lauftext[9] +="x xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +="x xx ";
lauftext[2] +=" xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '4':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" x ";
lauftext[9] +=" xx ";
lauftext[8] +=" xxx ";
lauftext[7] +=" x xx ";
lauftext[6] +=" xx xx ";
lauftext[5] +=" xx xx ";
lauftext[4] +="xxxxxxxx ";
lauftext[3] +=" xx ";
lauftext[2] +=" xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '5':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxxxxx ";
lauftext[9] +="xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xxxxxxx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +="x xx ";
lauftext[2] +=" xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '6':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxxx ";
lauftext[9] +=" xx ";
lauftext[8] +="xx ";
lauftext[7] +="xx ";
lauftext[6] +="xxxxxxx ";
lauftext[5] +="xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +=" xxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '7':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+="xxxxxxxx ";
lauftext[9] +=" xx ";
lauftext[8] +=" xx ";
lauftext[7] +=" xx ";
lauftext[6] +=" xx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +="xx ";
lauftext[2] +="xx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '8':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +=" xx xx ";
lauftext[6] +=" xxxx ";
lauftext[5] +=" xx xx ";
lauftext[4] +="xx xx ";
lauftext[3] +="xx xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case '9':
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" xxxxx ";
lauftext[9] +="xx xx ";
lauftext[8] +="xx xx ";
lauftext[7] +="xx xx ";
lauftext[6] +=" xxxxxx ";
lauftext[5] +=" xx ";
lauftext[4] +=" xx ";
lauftext[3] +="x xx ";
lauftext[2] +=" xxxxxx ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 9;
break;
case 195 : // Sonderzeichenprefix
fillrunninglength += 0;
break;
default:
lauftext[13]+=" ";
lauftext[12]+=" ";
lauftext[11]+=" ";
lauftext[10]+=" ";
lauftext[9] +="x x";
lauftext[8] +=" x x ";
lauftext[7] +=" x ";
lauftext[6] +=" x x ";
lauftext[5] +="x x";
lauftext[4] +=" ";
lauftext[3] +=" ";
lauftext[2] +=" ";
lauftext[1] +=" ";
lauftext[0] +=" ";
fillrunninglength += 5;
break;
}
}
}