
Display 7 Segmente 18 Ziffern
Bei dem Projekt geht es um einen Counter der 178 Jahre in Sekunden zählt. Es gab einige Herausforderungen. Schwierig war insbesondere die nahtlose Anbindung von zwei Displays. Ich musste ein Teil absegen und dann das Display bzw. die Ziffern spiegeln. Es funktioniert. Auch das 8-Bit diese Zahlen nicht darstellen kann, war ein Problem. Aber es gibt für alles eine Lösung.
Arduino 1
#include "LedControl.h"
#include "RTClib.h"
RTC_DS3231 rtc;
// constants won't change. They're used here to set pin numbers:
const int BUTTON_PIN = 7; // the number of the pushbutton pin
// Variables will change:
int lastState = LOW; // the previous state from the input pin
int currentState; // the current reading from the input pin
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// Arduino Pin 7 to DIN, 6 to Clk, 5 to LOAD, no.of devices is 1
LedControl lc=LedControl(12,11,10,2);
int sec = 9;
int sec1 = 4;
String myString = "123456789";
String myStringYear = "0000";
String myStringMonth = "00";
String myStringDay = "00";
String myStringHour = "";
String myStringMinute = "";
String myString1 = "123456789";
//secs in one year
long int secall = 31536000;
long int counterdays = 222067890;
float secallfloat = 4234567891.11;
// timessecs start jan 1.1.2022 10stellen
unsigned long int timeseconds = 12345678911;
//unsigned long int timeseconds = 5613410091;
unsigned long int timesecondsdiff = 1213410911;
int randNumber = 1;
int a = 4624;
int myArray[16]={1, 4, 3, 2, 7, 8, 9, 1,1, 4, 3, 2, 7, 8, 9, 1};
// Set the date we're counting down to
String countDownDate = "Jan 5, 2022 15:37:25";
int distanceFinalYear = 2200;
unsigned long int distanceFinalYear2 = 803766400;
String distanceFinalYear21 = "80376640";
int distanceFinalMonth = 2;
int distanceFinalDay = 2;
unsigned long int distanceFinalMonthAll = 0;
unsigned long int distanceFinalDayAll = 365;
unsigned long int distanceFinalDayAll1 = 178;
//unsigned long int distanceFinalSecAll = 178;
int displayMenu = 0;
String timesecondsstring = String(timeseconds);
//days in secs corretur
unsigned long int distanceFinalDayCorr = 86400;
unsigned long int distanceFinalMonthDayCorr = 0;
unsigned long int distanceFinalHourCorr = 86400;
void setup()
{
Serial.begin(57600);
//Serial.begin(9600);
// initialize the pushbutton pin as an pull-up input
// the pull-up input pin will be HIGH when the switch is open and LOW when the switch is closed.
pinMode(BUTTON_PIN, INPUT_PULLUP);
#ifndef ESP8266
while (!Serial); // wait for serial port to connect. Needed for native USB
#endif
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
//abort();
}
Serial.println("Setting the time...");
// When time needs to be set on a new device, or after a power loss, the
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
//rtc.adjust(DateTime(2022, 1, 3, 0, 0, 0));
//rtc.adjust(DateTime(2022,1,20,2,9,0));
DateTime now = rtc.now();
// Find the distance between now and the count down date
Serial.println("FUCKUP Endzeit 2.2.2200");
Serial.println("*** by lorenznick 7segmentled v1 100121 ***");
Serial.println(distanceFinalYear);
Serial.println(secallfloat);
//register teilung -100 jahre - halbierung
//distanceFinalYear = distanceFinalYear-(String(now.year(), DEC).toInt())-100;
distanceFinalYear = (distanceFinalYear-(String(now.year(), DEC).toInt()))/2;
distanceFinalYear21 = (distanceFinalYear21).substring(0,8);
distanceFinalYear21 = (distanceFinalYear21).substring(2,9);
distanceFinalYear2 = (distanceFinalYear21.toInt())*2;
//distanceFinalYear2 = distanceFinalYear2.substring(0,1).toInt();
Serial.println("distanceFinalYear2 - 8 stellen reduktion verdoppelung von wert");
Serial.println(distanceFinalYear21);
Serial.println(distanceFinalYear2);
//distanceFinalYear2 = ((((distanceFinalYear*12)*30)*24)*60)*60;
//distanceFinalYear2 = ((((distanceFinalYear*12)*30)*24)*60)*60;
// distance year*12monate*365tage*24stunden*60minuten*60sekunden
Serial.println("*** Monate ***");
distanceFinalMonthAll = distanceFinalYear*12;
Serial.println(distanceFinalMonthAll);
Serial.println("*** Tage ***");
distanceFinalDayAll = distanceFinalDayAll*(distanceFinalYear);
//distanceFinalDayAll = distanceFinalDayAll1*(distanceFinalDayAll);
Serial.println(distanceFinalDayAll);
Serial.println("*** Stunden ***");
distanceFinalMonthAll = distanceFinalDayAll*24;
Serial.println(distanceFinalMonthAll);
Serial.println("*** Minuten ***");
distanceFinalMonthAll = distanceFinalDayAll*24*60;
Serial.println(distanceFinalMonthAll);
Serial.println("*** Sekunden ***");
//Serial.println(distanceFinalMonthAll);
//Serial.println(timeseconds);
timeseconds = distanceFinalMonthAll*60;
//tage mal sekunden pro tag
distanceFinalDayCorr = distanceFinalDayCorr*String(now.day(), DEC).toInt();
distanceFinalHourCorr = distanceFinalHourCorr*String(now.hour(), DEC).toInt();
//monate sekunden hinzurechnen - tage sekunden finaldaycorr + finalmonthcoor
if(distanceFinalMonthDayCorr > 0)
distanceFinalMonthDayCorr = distanceFinalMonthDayCorr*1;
distanceFinalMonthDayCorr = (13-12)*String(now.month(), DEC).toInt()*30*24*60*60;
Serial.println("timediff secs");
Serial.println(distanceFinalDayCorr);
Serial.println(distanceFinalMonthDayCorr);
timeseconds = (timeseconds - distanceFinalHourCorr) - distanceFinalDayCorr ;
Serial.println(timeseconds);
Serial.println("*** Jahre ***");
Serial.println(distanceFinalYear);
Serial.println(now.year(), DEC);
//timesecondsstring = (distanceFinalYear21.toInt())*2;
timesecondsstring = String(timeseconds);
timesecondsstring = (timesecondsstring).substring(1,10);
Serial.println("seconds");
Serial.println(timesecondsstring);
timesecondsstring = timesecondsstring.toInt()*2;
timeseconds = timesecondsstring.toInt();
//distanceFinalYear21 = (distanceFinalYear21).substring(1,9);
//distanceFinalYear2 = (distanceFinalYear21.toInt())*2;
Serial.println("seconds *2");
Serial.println(timesecondsstring);
Serial.println("seconds too long native");
Serial.println(timeseconds);
// Initialize the 3 MAX7219 devices
for(int k=0; k<2; k++){
lc.shutdown(k,false); // Enable display
lc.setIntensity(k,8); // Set brightness level (0 is min, 15 is max)
lc.clearDisplay(k); // Clear display register
}
int count = 0;
for(int j=0; j<2; j++){
for(int i=0; i<16; i++){
lc.setDigit(0,7-i,count, false); // Decimal point enabled
lc.setDigit(1,7-i,count, false); // Decimal point enabled
//lc.setDigit(j,7-i,count, false); // Decimal point enabled
//lc.setDigit(1,7-i,count, false); // Decimal point enabled
//lc.setDigit(0,5,sec, false); // Decimal point enabled
count ++;
if(count == 16)
count=0;
}
}
}
void loop()
{
// read the state of the switch/button:
currentState = digitalRead(BUTTON_PIN);
if(lastState == HIGH && currentState == LOW)
//Serial.println("The button is pressed");
//secall -= 0.1;
displayMenu = displayMenu + 1;
else if(lastState == LOW && currentState == HIGH)
Serial.println("The button is released");
//secall = secall - 15;
// read the state of the switch/button:
currentState = digitalRead(BUTTON_PIN);
lastState = currentState;
if(sec == 0)
sec = 10;
sec1--;
if(sec1 == 0)
sec1 = 10;
//if(secall == 221122210)
//secall = 123456789;
//}
delay(1000);
sec -= 1;
secall -= 1;
//timeseconds = timeseconds + timesecondsdiff;
timeseconds -= 1;
timesecondsstring = String(timeseconds);
//timesecondsstring = String(timeseconds+timesecondsdiff);
//randNumber = random(16);
//lc.setDigit(1,randNumber,sec, false); // Decimal point enabled
//randNumber = random(16);
//lc.setDigit(0,randNumber,sec, false); // Decimal point enabled
//display1
//lc.setDigit(0,0,myArray[0], false); // Decimal point enabled
//lc.setDigit(0,1,myArray[1], false); // Decimal point enabled
//lc.setDigit(0,2,myArray[2], true); // Decimal point enabled
//lc.setDigit(0,3,myArray[3], false); // Decimal point enabled
//lc.setDigit(0,4,myArray[4], true); // Decimal point enabled
//lc.setDigit(0,5,myArray[5], false); // Decimal point enabled
//lc.setDigit(0,6,myArray[6], false); // Decimal point enabled
//lc.setDigit(0,7,myArray[7], false); // Decimal point enabled
//display2
//lc.setDigit(1,0,myArray[8], false); // Decimal point enabled
//lc.setDigit(1,1,myArray[9], false); // Decimal point enabled
//lc.setDigit(1,2,myArray[10], false); // Decimal point enabled
//lc.setDigit(1,3,myArray[11], false); // Decimal point enabled
//lc.setDigit(1,4,myArray[12], false); // Decimal point enabled
//lc.setDigit(1,5,myArray[13], false); // Decimal point enabled
//lc.setDigit(1,6,myArray[14], false); // Decimal point enabled
//lc.setDigit(1,7,myArray[15], false); // Decimal point enabled
//display2mirror
//lc.setDigit(0,7,myArray[8], false); // Decimal point enabled
//lc.setDigit(0,6,myArray[9], false); // Decimal point enabled
//lc.setDigit(0,5,myArray[10], false); // Decimal point enabled
//lc.setDigit(0,4,myArray[11], false); // Decimal point enabled
//lc.setDigit(0,3,myArray[12], false); // Decimal point enabled
//lc.setDigit(0,2,myArray[13], false); // Decimal point enabled
//lc.setDigit(0,1,myArray[14], false); // Decimal point enabled
//lc.setDigit(0,0,myArray[15], false); // Decimal point enabled
//int myArray[8]={4, sec, 3, 2, 7, 8, 9, 1};
//myString = String(secall, DEC);
myString = String(timesecondsstring);
Serial.println(myArray[9]);
Serial.println("timesecondsstring");
DateTime now = rtc.now();
//displayMenu
if(displayMenu == 1)
//myString = "0"+String(now.hour(), DEC)+"0"+String(now.minute(), DEC);
if(displayMenu == 2)
myString = String(12345678);
if(displayMenu == 3)
myString = String(22000202);
if(displayMenu == 4)
//timeseconds = String(134100115).toInt();
myString = String(13410000);
//myString = String(13410000).toInt();
if(displayMenu > 4)
displayMenu = 0;
//myString = String(2200020290);
//lc.clearDisplay(0);
myStringYear = String(now.year(), DEC);
myStringMonth = String(now.month(), DEC);
myStringDay = String(now.day(), DEC);
myStringHour = String(now.hour(), DEC);
myStringMinute = String(now.minute(), DEC);
if(now.minute() < 10)
myStringMinute = "0"+String(now.minute(), DEC);
if(now.hour() < 10)
myStringHour = "0"+String(now.hour(), DEC);
if(now.day() < 10)
myStringDay = "0"+String(now.day(), DEC);
if(now.month() < 10)
myStringMonth = "0"+String(now.month(), DEC);
Serial.println(myString);
//Serial.println(myStringMinute);
//Serial.println(buttonState);
//Serial.println(secalllong);
//Serial.print('/');
//Serial.println(myString.substring(8,9));
//myArray[0]=secalllong.substring(1,2).toInt();
//myArray[1]=secalllong.substring(0,1).toInt();
//display day month year minute hour
//myArray[0]=myStringDay.substring(1,2).toInt();
//myArray[1]=myStringDay.substring(0,1).toInt();
//myArray[0]=myStringDay.substring(1,2).toInt();
//myArray[1]=myStringDay.substring(0,1).toInt();
//secondstest long
//myArray[0]=timesecondsstring.substring(1,2).toInt();
//myArray[1]=timesecondsstring.substring(0,1).toInt();
//myArray[2]=myStringMonth.substring(1,2).toInt();
//myArray[3]=myStringMonth.substring(0,1).toInt();
//myArray[4]=myStringYear.substring(3,4).toInt();
//myArray[5]=myStringYear.substring(2,3).toInt();
//myArray[6]=myStringYear.substring(1,2).toInt();
//myArray[7]=myStringYear.substring(0,1).toInt();
//fake first position display left number 7
//myArray[1]=5;
//myArray[8]=myStringMinute.substring(1,2).toInt();
//myArray[9]=myStringMinute.substring(0,1).toInt();
//myArray[10]=myStringHour.substring(1,2).toInt();
//myArray[11]=myStringHour.substring(0,1).toInt();
//display secall
//timesecondsstring = myStringYear.toString();
//myArray[7]=timesecondsstring.substring(0,1).toInt();
if (displayMenu == 0) {
myArray[8]=timesecondsstring.substring(9,10).toInt();
myArray[9]=timesecondsstring.substring(8,9).toInt();
myArray[10]=timesecondsstring.substring(7,8).toInt();
myArray[11]=timesecondsstring.substring(6,7).toInt();
myArray[12]=timesecondsstring.substring(5,6).toInt();
myArray[13]=timesecondsstring.substring(4,5).toInt();
myArray[14]=timesecondsstring.substring(3,4).toInt();
myArray[15]=timesecondsstring.substring(2,3).toInt();
if(myArray[8]==9)
lc.setChar(0,7,'6',false);
if(myArray[8]==8)
lc.setChar(0,7,'8',false);
if(myArray[8]==7)
lc.setChar(0,7,'L',false);
if(myArray[8]==6)
lc.setChar(0,7,'9',false);
if(myArray[8]==5)
lc.setChar(0,7,'5',false);
if(myArray[8]==4)
lc.setRow(0,7,0x17);
if(myArray[8]==3)
lc.setChar(0,7,'E',false);
if(myArray[8]==2)
lc.setChar(0,7,'2',false);
if(myArray[8]==1)
lc.setRow(0,7,0x106);
if(myArray[8]==0)
lc.setChar(0,7,'0',false);
//digit 2
if(myArray[9]==9)
lc.setChar(0,6,'6',false);
if(myArray[9]==8)
lc.setChar(0,6,'8',false);
if(myArray[9]==7)
lc.setChar(0,6,'L',false);
if(myArray[9]==6)
lc.setChar(0,6,'9',false);
if(myArray[9]==5)
lc.setChar(0,6,'5',false);
if(myArray[9]==4)
lc.setRow(0,6,0x17);
if(myArray[9]==3)
lc.setChar(0,6,'E',false);
if(myArray[9]==2)
lc.setChar(0,6,'2',false);
if(myArray[9]==1)
lc.setRow(0,6,0x106);
if(myArray[9]==0)
lc.setChar(0,6,'0',false);
//digit 3
if(myArray[10]==9)
lc.setChar(0,5,'6',false);
if(myArray[10]==8)
lc.setChar(0,5,'8',false);
if(myArray[10]==7)
lc.setChar(0,5,'L',false);
if(myArray[10]==6)
lc.setChar(0,5,'9',false);
if(myArray[10]==5)
lc.setChar(0,5,'5',false);
if(myArray[10]==4)
lc.setRow(0,5,0x17);
if(myArray[10]==3)
lc.setChar(0,5,'E',false);
if(myArray[10]==2)
lc.setChar(0,5,'2',false);
if(myArray[10]==1)
lc.setRow(0,5,0x106);
if(myArray[10]==0)
lc.setChar(0,5,'0',false);
//digit 4
if(myArray[11]==9)
lc.setChar(0,4,'6',false);
if(myArray[11]==8)
lc.setChar(0,4,'8',false);
if(myArray[11]==7)
lc.setChar(0,4,'L',false);
if(myArray[11]==6)
lc.setChar(0,4,'9',false);
if(myArray[11]==5)
lc.setChar(0,4,'5',false);
if(myArray[11]==4)
lc.setRow(0,4,0x17);
if(myArray[11]==3)
lc.setChar(0,4,'E',false);
if(myArray[11]==2)
lc.setChar(0,4,'2',false);
if(myArray[11]==1)
lc.setRow(0,4,0x106);
if(myArray[11]==0)
lc.setChar(0,4,'0',false);
//digit 5
if(myArray[12]==9)
lc.setChar(0,3,'6',false);
if(myArray[12]==8)
lc.setChar(0,3,'8',false);
if(myArray[12]==7)
lc.setChar(0,3,'L',false);
if(myArray[12]==6)
lc.setChar(0,3,'9',false);
if(myArray[12]==5)
lc.setChar(0,3,'5',false);
if(myArray[12]==4)
lc.setRow(0,3,0x17);
if(myArray[12]==3)
lc.setChar(0,3,'E',false);
if(myArray[12]==2)
lc.setChar(0,3,'2',false);
if(myArray[12]==1)
lc.setRow(0,3,0x106);
if(myArray[12]==0)
lc.setChar(0,3,'0',false);
//digit 6
if(myArray[13]==9)
lc.setChar(0,2,'6',false);
if(myArray[13]==8)
lc.setChar(0,2,'8',false);
if(myArray[13]==7)
lc.setChar(0,2,'L',false);
if(myArray[13]==6)
lc.setChar(0,2,'9',false);
if(myArray[13]==5)
lc.setChar(0,2,'5',false);
if(myArray[13]==4)
lc.setRow(0,2,0x17);
if(myArray[13]==3)
lc.setChar(0,2,'E',false);
if(myArray[13]==2)
lc.setChar(0,2,'2',false);
if(myArray[13]==1)
lc.setRow(0,2,0x106);
if(myArray[13]==0)
lc.setChar(0,2,'0',false);
//digit 7
if(myArray[14]==9)
lc.setChar(0,1,'6',false);
if(myArray[14]==8)
lc.setChar(0,1,'8',false);
if(myArray[14]==7)
lc.setChar(0,1,'L',false);
if(myArray[14]==6)
lc.setChar(0,1,'9',false);
if(myArray[14]==5)
lc.setChar(0,1,'5',false);
if(myArray[14]==4)
lc.setRow(0,1,0x17);
if(myArray[14]==3)
lc.setChar(0,1,'E',false);
if(myArray[14]==2)
lc.setChar(0,1,'2',false);
if(myArray[14]==1)
lc.setRow(0,1,0x106);
if(myArray[14]==0)
lc.setChar(0,1,'0',false);
//digit 8
if(myArray[15]==9)
lc.setChar(0,0,'6',false);
if(myArray[15]==8)
lc.setChar(0,0,'8',false);
if(myArray[15]==7)
lc.setChar(0,0,'L',false);
if(myArray[15]==6)
lc.setChar(0,0,'9',false);
if(myArray[15]==5)
lc.setChar(0,0,'5',false);
if(myArray[15]==4)
lc.setRow(0,0,0x17);
if(myArray[15]==3)
lc.setChar(0,0,'E',false);
if(myArray[15]==2)
lc.setChar(0,0,'2',false);
if(myArray[15]==1)
lc.setRow(0,0,0x106);
if(myArray[15]==0)
lc.setChar(0,0,'0',false);
//old
//myArray[8]=myString.substring(9,10).toInt();
//myArray[9]=myString.substring(8,9).toInt();
//myArray[10]=myString.substring(7,8).toInt();
//myArray[11]=myString.substring(6,7).toInt();
//myArray[12]=myString.substring(5,6).toInt();
//myArray[13]=myString.substring(4,5).toInt();
//myArray[14]=myString.substring(3,4).toInt();
//myArray[15]=myString.substring(2,3).toInt();
}
//old version 8 ziffern
else if (displayMenu > 0){
//fake auf 0
myArray[0]=6;
myArray[8]=myString.substring(7,8).toInt();
myArray[9]=myString.substring(6,7).toInt();
myArray[10]=myString.substring(5,6).toInt();
myArray[11]=myString.substring(4,5).toInt();
myArray[12]=myString.substring(3,4).toInt();
myArray[13]=myString.substring(2,3).toInt();
myArray[14]=myString.substring(1,2).toInt();
myArray[15]=myString.substring(0,1).toInt();
}
}
Arduino 2
#include "LedControl.h"
#include "RTClib.h"
RTC_DS3231 rtc;
// constants won't change. They're used here to set pin numbers:
const int BUTTON_PIN = 7; // the number of the pushbutton pin
// Variables will change:
int lastState = LOW; // the previous state from the input pin
int currentState; // the current reading from the input pin
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// Arduino Pin 7 to DIN, 6 to Clk, 5 to LOAD, no.of devices is 1
LedControl lc=LedControl(12,11,10,2);
int sec = 9;
int sec1 = 4;
String myString = "123456789";
String myStringYear = "0000";
String myStringMonth = "00";
String myStringDay = "00";
String myStringHour = "";
String myStringMinute = "";
String myString1 = "123456789";
//secs in one year
long int secall = 31536000;
long int counterdays = 222067890;
float secallfloat = 4234567891.11;
// timessecs start jan 1.1.2022 10stellen
unsigned long int timeseconds = 12345678911;
//unsigned long int timeseconds = 5613410091;
unsigned long int timesecondsdiff = 1213410911;
int randNumber = 1;
int a = 4624;
int myArray[16]={1, 4, 3, 2, 7, 8, 9, 1,1, 4, 3, 2, 7, 8, 9, 1};
// Set the date we're counting down to
String countDownDate = "Jan 5, 2022 15:37:25";
int distanceFinalYear = 2200;
unsigned long int distanceFinalYear2 = 803766400;
String distanceFinalYear21 = "80376640";
int distanceFinalMonth = 2;
int distanceFinalDay = 2;
unsigned long int distanceFinalMonthAll = 0;
unsigned long int distanceFinalDayAll = 365;
unsigned long int distanceFinalDayAll1 = 178;
//unsigned long int distanceFinalSecAll = 178;
int displayMenu = 0;
String timesecondsstring = String(timeseconds);
//days in secs corretur
unsigned long int distanceFinalDayCorr = 86400;
unsigned long int distanceFinalMonthDayCorr = 0;
unsigned long int distanceFinalHourCorr = 86400;
void setup()
{
Serial.begin(57600);
//Serial.begin(9600);
// initialize the pushbutton pin as an pull-up input
// the pull-up input pin will be HIGH when the switch is open and LOW when the switch is closed.
pinMode(BUTTON_PIN, INPUT_PULLUP);
#ifndef ESP8266
while (!Serial); // wait for serial port to connect. Needed for native USB
#endif
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
//abort();
}
Serial.println("Setting the time...");
// When time needs to be set on a new device, or after a power loss, the
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
//rtc.adjust(DateTime(2022, 1, 3, 0, 0, 0));
DateTime now = rtc.now();
// Find the distance between now and the count down date
Serial.println("FUCKUP Endzeit 2.2.2200");
Serial.println("*** by lorenznick 7segmentled v1 100121 ***");
Serial.println(distanceFinalYear);
Serial.println(secallfloat);
//register teilung -100 jahre - halbierung
//distanceFinalYear = distanceFinalYear-(String(now.year(), DEC).toInt())-100;
distanceFinalYear = (distanceFinalYear-(String(now.year(), DEC).toInt()))/2;
distanceFinalYear21 = (distanceFinalYear21).substring(0,8);
distanceFinalYear21 = (distanceFinalYear21).substring(2,9);
distanceFinalYear2 = (distanceFinalYear21.toInt())*2;
//distanceFinalYear2 = distanceFinalYear2.substring(0,1).toInt();
Serial.println("distanceFinalYear2 - 8 stellen reduktion verdoppelung von wert");
Serial.println(distanceFinalYear21);
Serial.println(distanceFinalYear2);
//distanceFinalYear2 = ((((distanceFinalYear*12)*30)*24)*60)*60;
//distanceFinalYear2 = ((((distanceFinalYear*12)*30)*24)*60)*60;
// distance year*12monate*365tage*24stunden*60minuten*60sekunden
Serial.println("*** Monate ***");
distanceFinalMonthAll = distanceFinalYear*12;
Serial.println(distanceFinalMonthAll);
Serial.println("*** Tage ***");
distanceFinalDayAll = distanceFinalDayAll*(distanceFinalYear);
//distanceFinalDayAll = distanceFinalDayAll1*(distanceFinalDayAll);
Serial.println(distanceFinalDayAll);
Serial.println("*** Stunden ***");
distanceFinalMonthAll = distanceFinalDayAll*24;
Serial.println(distanceFinalMonthAll);
Serial.println("*** Minuten ***");
distanceFinalMonthAll = distanceFinalDayAll*24*60;
Serial.println(distanceFinalMonthAll);
Serial.println("*** Sekunden ***");
//Serial.println(distanceFinalMonthAll);
//Serial.println(timeseconds);
timeseconds = distanceFinalMonthAll*60;
//tage mal sekunden pro tag
distanceFinalDayCorr = distanceFinalDayCorr*String(now.day(), DEC).toInt();
distanceFinalHourCorr = distanceFinalHourCorr*String(now.hour(), DEC).toInt();
//monate sekunden hinzurechnen - tage sekunden finaldaycorr + finalmonthcoor
if(distanceFinalMonthDayCorr > 0)
distanceFinalMonthDayCorr = distanceFinalMonthDayCorr*1;
distanceFinalMonthDayCorr = (13-12)*String(now.month(), DEC).toInt()*30*24*60*60;
Serial.println("timediff secs");
Serial.println(distanceFinalDayCorr);
Serial.println(distanceFinalMonthDayCorr);
timeseconds = (timeseconds - distanceFinalHourCorr) - distanceFinalDayCorr ;
Serial.println(timeseconds);
Serial.println("*** Jahre ***");
Serial.println(distanceFinalYear);
Serial.println(now.year(), DEC);
//timesecondsstring = (distanceFinalYear21.toInt())*2;
timesecondsstring = String(timeseconds);
timesecondsstring = (timesecondsstring).substring(1,10);
Serial.println("seconds");
Serial.println(timesecondsstring);
timesecondsstring = timesecondsstring.toInt()*2;
timeseconds = timesecondsstring.toInt();
//distanceFinalYear21 = (distanceFinalYear21).substring(1,9);
//distanceFinalYear2 = (distanceFinalYear21.toInt())*2;
Serial.println("seconds *2");
Serial.println(timesecondsstring);
Serial.println("seconds too long native");
Serial.println(timeseconds);
// Initialize the 3 MAX7219 devices
for(int k=0; k<2; k++){
lc.shutdown(k,false); // Enable display
lc.setIntensity(k,8); // Set brightness level (0 is min, 15 is max)
lc.clearDisplay(k); // Clear display register
}
int count = 0;
for(int j=0; j<2; j++){
for(int i=0; i<16; i++){
lc.setDigit(0,7-i,count, false); // Decimal point enabled
lc.setDigit(1,7-i,count, false); // Decimal point enabled
//lc.setDigit(j,7-i,count, false); // Decimal point enabled
//lc.setDigit(1,7-i,count, false); // Decimal point enabled
//lc.setDigit(0,5,sec, false); // Decimal point enabled
count ++;
if(count == 16)
count=0;
}
}
}
void loop()
{
// read the state of the switch/button:
currentState = digitalRead(BUTTON_PIN);
if(lastState == HIGH && currentState == LOW)
//Serial.println("The button is pressed");
//secall -= 0.1;
displayMenu = displayMenu + 1;
else if(lastState == LOW && currentState == HIGH)
Serial.println("The button is released");
//secall = secall - 15;
// read the state of the switch/button:
currentState = digitalRead(BUTTON_PIN);
lastState = currentState;
if(sec == 0)
sec = 10;
sec1--;
if(sec1 == 0)
sec1 = 10;
//if(secall == 221122210)
//secall = 123456789;
//}
delay(1000);
sec -= 1;
secall -= 1;
//timeseconds = timeseconds + timesecondsdiff;
timeseconds -= 1;
timesecondsstring = String(timeseconds);
//timesecondsstring = String(timeseconds+timesecondsdiff);
//randNumber = random(16);
//lc.setDigit(1,randNumber,sec, false); // Decimal point enabled
//randNumber = random(16);
//lc.setDigit(0,randNumber,sec, false); // Decimal point enabled
//display1
lc.setDigit(0,0,myArray[0], false); // Decimal point enabled
lc.setDigit(0,1,myArray[1], false); // Decimal point enabled
lc.setDigit(0,2,myArray[2], false); // Decimal point enabled
lc.setDigit(0,3,myArray[3], false); // Decimal point enabled
lc.setDigit(0,4,myArray[4], false); // Decimal point enabled
lc.setDigit(0,5,myArray[5], false); // Decimal point enabled
lc.setDigit(0,6,myArray[6], false); // Decimal point enabled
lc.setDigit(0,7,myArray[7], false); // Decimal point enabled
//display2
lc.setDigit(1,0,myArray[8], false); // Decimal point enabled
lc.setDigit(1,1,myArray[9], false); // Decimal point enabled
lc.setDigit(1,2,myArray[10], false); // Decimal point enabled
lc.setDigit(1,3,myArray[11], false); // Decimal point enabled
lc.setDigit(1,4,myArray[12], false); // Decimal point enabled
lc.setDigit(1,5,myArray[13], false); // Decimal point enabled
lc.setDigit(1,6,myArray[14], false); // Decimal point enabled
lc.setDigit(1,7,myArray[15], false); // Decimal point enabled
//int myArray[8]={4, sec, 3, 2, 7, 8, 9, 1};
//myString = String(secall, DEC);
myString = String(timesecondsstring);
Serial.println("timesecondsstring");
DateTime now = rtc.now();
//fake first position display left number 7
myArray[0]=6;
myArray[1]=5;
myArray[2]=0;
myArray[3]=0;
myArray[4]=0;
myArray[5]=0;
myArray[6]=0;
myArray[7]=0;
//myArray[8]=myStringMinute.substring(1,2).toInt();
//myArray[9]=myStringMinute.substring(0,1).toInt();
//myArray[10]=myStringHour.substring(1,2).toInt();
//myArray[11]=myStringHour.substring(0,1).toInt();
//display secall
//timesecondsstring = myStringYear.toString();
//myArray[7]=timesecondsstring.substring(0,1).toInt();
if (displayMenu == 0) {
myArray[8]=timesecondsstring.substring(9,10).toInt();
myArray[9]=timesecondsstring.substring(8,9).toInt();
myArray[10]=timesecondsstring.substring(7,8).toInt();
myArray[11]=timesecondsstring.substring(6,7).toInt();
myArray[12]=timesecondsstring.substring(5,6).toInt();
myArray[13]=timesecondsstring.substring(4,5).toInt();
myArray[14]=timesecondsstring.substring(3,4).toInt();
myArray[15]=timesecondsstring.substring(2,3).toInt();
//old
//myArray[8]=myString.substring(9,10).toInt();
//myArray[9]=myString.substring(8,9).toInt();
//myArray[10]=myString.substring(7,8).toInt();
//myArray[11]=myString.substring(6,7).toInt();
//myArray[12]=myString.substring(5,6).toInt();
//myArray[13]=myString.substring(4,5).toInt();
//myArray[14]=myString.substring(3,4).toInt();
//myArray[15]=myString.substring(2,3).toInt();
}
//old version 8 ziffern
else if (displayMenu > 0){
//fake auf 0
myArray[0]=6;
myArray[8]=myString.substring(7,8).toInt();
myArray[9]=myString.substring(6,7).toInt();
myArray[10]=myString.substring(5,6).toInt();
myArray[11]=myString.substring(4,5).toInt();
myArray[12]=myString.substring(3,4).toInt();
myArray[13]=myString.substring(2,3).toInt();
myArray[14]=myString.substring(1,2).toInt();
myArray[15]=myString.substring(0,1).toInt();
}
}