#define dig1 PB12 #define dig2 PB14 #define dig3 PA8 #define dig4 PA10 #define dig5 PB6 #define dig6 PB8 #define dig7 PB13 #define dig8 PB15 #define dig9 PA9 #define dig10 PB5 #define dig11 PB7 #define dig12 PB9 //NPN D882 #define seg1 PC13 #define seg2 PC14 #define seg3 PC15 #define seg4 PA1 #define seg5 PA2 #define seg6 PA3 #define seg7 PB10 #define blau PB11 #define grun PA13 #define rot PA13 //analoge 7taster #define t1 PA15 #define tasterM PA0 int16_t digitise[14][10]; //last: brighteness int8_t onpress[18]; uint8_t blinkt=0,blin; void setup() { pinMode(dig1,OUTPUT); pinMode(dig2,OUTPUT); pinMode(dig3,OUTPUT); pinMode(dig4,OUTPUT); pinMode(dig5,OUTPUT); pinMode(dig6,OUTPUT);pinMode(dig7,OUTPUT); pinMode(seg1,OUTPUT); pinMode(seg2,OUTPUT); pinMode(seg3,OUTPUT); pinMode(seg4,OUTPUT); pinMode(seg5,OUTPUT); pinMode(seg6,OUTPUT); pinMode(seg7,OUTPUT); pinMode(dig8,OUTPUT);pinMode(dig9,OUTPUT);pinMode(dig10,OUTPUT);pinMode(dig11,OUTPUT);pinMode(dig12,OUTPUT);pinMode(blau,OUTPUT); pinMode(t1,INPUT); } boolean alon=false; boolean downcount=false;uint16_t alarmsec=0;uint8_t downmod=0,mod=0; void loop() { zeitreise(); } uint16_t dasist[]={2740,2940,3170,3420,3740},wert,fadefine=400,ani=399,aus=0,beatsplit;//25 24measure values oh just many taster you want with one GPIO and resistors uint8_t auswahlzi=0; uint32_t Secs=600,eintag=86400,wann=1000;uint8_t xdigs=12; boolean tplusset=false,tminusset=false,istan=false,updatez=false,autom=false; uint16_t RGBled[9],toleranz=100; void drueckmich(void){onpress[14]++; if (onpress[14] >=1) {onpress[14]=0; wert=analogRead(tasterM); if (wert>(dasist[0]-toleranz)&&wert<(dasist[0]+toleranz)&& onpress[0] ==0 ) {onpress[0]=1;auswahlzi++;} if (onpress[0]==1){onpress[1]++;}if(onpress[1]>=10){onpress[1]=0;onpress[0]=0;} if (wert>(dasist[1]-toleranz)&&wert<(dasist[1]+toleranz)&& onpress[2] ==0&& auswahlzi>0) {onpress[2]=1;auswahlzi--;} if (onpress[2]==1){onpress[3]++;}if(onpress[3]>=15){onpress[3]=0;onpress[2]=0;} if (wert>(dasist [2]-toleranz)&&wert<(dasist[2]+toleranz)&& onpress[4] ==0 ) {onpress[2]=1;if(autom==true){autom=false;}else{autom=true;}} if (onpress[4]==1){onpress[5]++;}if(onpress[5]>=15){onpress[5]=0;onpress[4]=0;} if (wert>(dasist[3]-toleranz)&&wert<(dasist[3]+toleranz)&& onpress[6] ==0) { onpress[6] =1;tplusset=true; } if (onpress[6]==1){onpress[7]++;}if(onpress[7]>=6){onpress[7]=0;onpress[6]=0;} if (wert>(dasist[4]-toleranz)&&wert<(dasist[4]+toleranz)&& onpress[8] ==0) { onpress[8] =1;tminusset=true;} if (onpress[8]==1){onpress[9]++;}if(onpress[9]>=6){onpress[9]=0;onpress[8]=0;} if (wert>(dasist[5]-toleranz)&&wert<(dasist[5]+toleranz)&& onpress[10] ==0) { onpress[10] =1; } if (onpress[10]==1){onpress[11]++;}if(onpress[11]>=10){onpress[11]=0;onpress[10]=0;} configdas(); updatez=false; for(uint8_t durchgeh=0;durchgeh<12;durchgeh+=2){if(onpress[durchgeh]==1){updatez=true;}} if(updatez==true){updatez=false;} }} void leuchtetbalken(void){//auswahlzi } uint16_t adder=1; //auswahl 1=setz stunden1, 2=setz stunden2, 3=setz minuten1, 4=setz minuten2, void configdas() { // digitise[10][auswahlzi]=ani; if (auswahlzi==0) {adder=1; if (tplusset ==true && mod <7){tplusset=false; mod+=adder;} if (tminusset==true && mod >=adder){tminusset=false; mod-=adder;}} if (auswahlzi==1) {adder=36000; if (tplusset ==true && Secs =adder){tminusset=false; Secs-=adder;}} if (auswahlzi==2) {adder=3600; if (tplusset ==true && Secs =adder){tminusset=false; Secs-=adder;}} if (auswahlzi==3) {adder=600; if (tplusset ==true && Secs =adder){tminusset=false; Secs-=adder;}} if (auswahlzi==4) {adder=60; if (tplusset ==true && Secs =adder){tminusset=false; Secs-=adder;}} if (auswahlzi==5) {adder=10; if (tplusset ==true && Secs =adder){tminusset=false; Secs-=adder;}} } String michauch=""; void zeigseczeit(uint32_t runningSecs,uint8_t ab){michauch=""; if ((((runningSecs/60)/60)%60) <10){ michauch+="0";} michauch +=((runningSecs/60)/60)%60; if (((runningSecs/60)%60) <10){ michauch+="0";} michauch +=(runningSecs/60)%60; if ((runningSecs%60) <10){ michauch+="0";} michauch +=runningSecs%60; if(auswahlzi>0&&blinkt%2==0){michauch[auswahlzi-1]=' ';} if (ab==0){ setzbalken1(michauch);} if (ab==1){ setzbalken2(michauch);} if (ab==2){ setzbalken1(" ");} if (ab==3){ setzbalken2(" ");} } void zeigzahl(uint32_t mich,uint8_t abc){michauch=""; if (mich <10) {michauch+="0";} if (mich <100) {michauch+="0";} if (mich <1000) {michauch+="0";} if (mich <10000) {michauch+="0";} if (mich <100000) {michauch+="0";}//caused 6digs michauch+=mich; //if(auswahlzi>0&&blinkt%10==0){michauch[auswahlzi]=' ';} if (abc==0){ setzbalken1(michauch);} if (abc==1){ setzbalken2(michauch);} } void setzbalken1(String showme) {zeigzeugs(0,showme[0]); zeigzeugs(1,showme[1]); zeigzeugs(2,showme[2]); zeigzeugs(3,showme[3]); zeigzeugs(4,showme[4]); zeigzeugs(5,showme[5]);} void setzbalken2(String showmeU) {zeigzeugs(6,showmeU[0]);zeigzeugs(7,showmeU[1]);zeigzeugs(8,showmeU[2]);zeigzeugs(9,showmeU[3]);zeigzeugs(10,showmeU[4]);zeigzeugs(11,showmeU[5]);}//reorder if needet nixe kote system just expand for having seconds displayed boolean einszwei; uint8_t zehl,on=99,ende=41;String bla=""; long maintime=millis(),setz=micros(),maintime3=micros(),flink=micros(),nochmal=millis(); void zeitreise(void){ while ((millis()- maintime) >=14) { blinkt++;if(blinkt>10){blinkt=0;} wann++;if(wann>300){wann=random(10,200);if(autom==true){mod=random(1,8);}} drueckmich();downfade(); maintime = millis();} while ((micros()- setz)>(20100/2)){//something between 19500-20500 raw-schneller beatsplit++; if (beatsplit >=ende){beatsplit=0;}//schneller=random(2,4)*2; blin++; if(blin>=20){blin=0;}RGBled[7]=blin*20; if(mod==0){ if(blin<10){zeigseczeit(Secs,0);} if(blin>=10){zeigseczeit(Secs,1);}} if(mod==1){ if(blin%4==0){zeigseczeit(Secs,0);} if(blin%4==1){zeigseczeit(Secs,1);} if(blin%4==2){zeigseczeit(Secs,2);} if(blin%4==3){zeigseczeit(Secs,3);} } if(mod==2){ if(blin%4==0){zeigseczeit(Secs,0);} if(blin%4==1){zeigseczeit(Secs,2);} if(blin%4==2){zeigseczeit(Secs,1);} if(blin%4==3){zeigseczeit(Secs,3);} } if(mod==3){ if(blin%4==0){zeigseczeit(Secs,0);zeigseczeit(Secs,3);} if(blin%4==1){zeigseczeit(Secs,2);} if(blin%4==2){zeigseczeit(Secs,0);} if(blin%4==3){zeigseczeit(Secs,2);zeigseczeit(Secs,1);} } if(mod==4){ if(blin%4==0){zeigseczeit(Secs,0);zeigseczeit(Secs,3);} if(blin%4==1){zeigseczeit(Secs,1);zeigseczeit(Secs,2);} if(blin%4==2){zeigseczeit(Secs,0);zeigseczeit(Secs,3);} if(blin%4==3){zeigseczeit(Secs,1);zeigseczeit(Secs,2);} } if(mod==5){ if(blin%4==0){zeigseczeit(Secs,0);} if(blin%4==1){zeigseczeit(Secs,1);} if(blin%4==2){zeigseczeit(Secs,2);zeigseczeit(Secs,3);} if(blin%4==3){} } if(mod==6){ if(blin%4==0){zeigseczeit(Secs,1);} if(blin%4==1){zeigseczeit(Secs,0);} if(blin%4==2){zeigseczeit(Secs,2);zeigseczeit(Secs,3);} if(blin%4==3){} } if(mod==7){bla="";for(uint8_t tz=0;tz<6;tz++){ if(blin%2==0){bla+=random(0,9);setzbalken1(bla);} if(blin%2==1){bla+=random(0,9);setzbalken2(bla);}}} if(mod==8){for(uint8_t they=0; they= 996500) {//correction or correct clock speed //zeigseczeit(Secs,0); //zeigzahl(1234567); maintime3 = micros(); Secs++;}// thistime without date while ((micros()- flink) >= 2) { machlicht(); flink=micros();} while ((millis()- nochmal) >= 167) {//z0rt 1k/6 nochmal=millis();//change here last npn>pnp channel bars below+dots zehl++;if(zehl>7){zehl=0;} } } uint8_t steptz=30; void downfade(void) { for (int16_t digs=0; digs <=xdigs; digs++) { for (int16_t ad=1; ad <=7; ad++) { if(digitise[digs][ad]>0) { digitise[digs][ad]--;} if(digitise[digs][ad]<(ani-(ani/4))&&digitise[digs][ad]>=steptz) { digitise[digs][ad]-=steptz;} }} } /*thingy the dig "PLAN" for setting array stuff (bars in digital display) for havving stuff there if build own digitdisplay must be a plan for translation somwhere usable: * zeigzeugs(position(number),character(number,alpha,ascii)); =1) { if (fcount1 == ((fadefine)-digitise[0][sekt])) { digitalWrite(dig1,LOW);} if (fcount1 == ((fadefine)-digitise[1][sekt])) { digitalWrite(dig2,LOW);} if (fcount1 == ((fadefine)-digitise[2][sekt])) { digitalWrite(dig3,LOW);} if (fcount1 == ((fadefine)-digitise[3][sekt])) { digitalWrite(dig4,LOW);} if (fcount1 == ((fadefine)-digitise[4][sekt])) { digitalWrite(dig5,LOW);} if (fcount1 == ((fadefine)-digitise[5][sekt])) { digitalWrite(dig6,LOW);} if (fcount1 == ((fadefine)-digitise[6][sekt])) { digitalWrite(dig7,LOW);}//just more.. if (fcount1 == ((fadefine)-digitise[7][sekt])) { digitalWrite(dig8,LOW);} if (fcount1 == ((fadefine)-digitise[8][sekt])) { digitalWrite(dig9,LOW);} if (fcount1 == ((fadefine)-digitise[9][sekt])) { digitalWrite(dig10,LOW);} if (fcount1 == ((fadefine)-digitise[10][sekt])){ digitalWrite(dig11,LOW);} if (fcount1 == ((fadefine)-digitise[11][sekt])){ digitalWrite(dig12,LOW);} if (fcount1 == ((fadefine)-RGBled[5])) { digitalWrite(rot,HIGH);} if (fcount1 == ((fadefine)-RGBled[6])) { digitalWrite(grun,HIGH);} if (fcount1 == ((fadefine)-RGBled[7])) { digitalWrite(blau,HIGH);} } if (fcount1 >= (fadefine)) {nodig();noled();} }}}} void nodig(void) { digitalWrite(dig1,HIGH); digitalWrite(dig2,HIGH); digitalWrite(dig3,HIGH); digitalWrite(dig4,HIGH); digitalWrite(dig5,HIGH); digitalWrite(dig6,HIGH); digitalWrite(dig7,HIGH);digitalWrite(dig12,HIGH);digitalWrite(dig8,HIGH);digitalWrite(dig9,HIGH);digitalWrite(dig10,HIGH);digitalWrite(dig11,HIGH);digitalWrite(dig12,HIGH);} void noseg(void) { digitalWrite(seg1,LOW); digitalWrite(seg2,LOW); digitalWrite(seg3,LOW); digitalWrite(seg4,LOW); digitalWrite(seg5,LOW); digitalWrite(seg6,LOW); digitalWrite(seg7,LOW);} void noled(void) { digitalWrite(rot,LOW);digitalWrite(grun,LOW);digitalWrite(blau,LOW);} //[MEOW] project by marderchen us3e it or parts if usefull :3