BLOG

<strong> my cool projects and news </strong>

blog_displaymania3

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();

}

}

Previous Post
12 / 12