//joy got my SMD creativity stuff back so lets do old awesome hobby and create something like something i ave done over a year ago and start with this project //6digs 394* superbright 0603 leds blue large //bar=9ledd+3x16uF chipvalue capacitor negatil led>diode(also resistor)> D882 (3A NPN)>220R>stmf103c8t6 //positiv: led(same all bars)> Y2 PNP>(?volt setted 2A boost stepup with 6.3v 1800uF capacitor) // \->220R>J3Y NPN>220R>stm103c8t6 /*picures: * https://www.marderchen.lima-city.de/rest/0603_size.jpg * https://www.marderchen.lima-city.de/rest/0603_led_prepare.jpg * https://www.marderchen.lima-city.de/rest/refiling_SMD_storrage.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clockbase.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_ledpositionscalc.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_ledplacing.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_capacitorsplaced.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_progress.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_interface.jpg * https://www.marderchen.lima-city.de/rest/progressing.jpg * https://www.marderchen.lima-city.de/rest/new_working_light.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_wiering.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_heatsink.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_datedigs.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_date2.jpg * https://www.marderchen.lima-city.de/rest/0603_ledsize.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_pwertest.jpg * https://www.marderchen.lima-city.de/rest/large_06031_clock_bluetest.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_test2.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_board.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_time.jpg * https://www.marderchen.lima-city.de/rest/large_0603_clock_case.jpg */ //hihi oh i have missed this creativiy developing hobby so verry much //Y2 #define dig1 PC13 #define dig2 PC14 #define dig3 PC15 #define dig4 PA0 #define dig5 PA1 #define dig6 PA2 #define dig7 PA3 //unterline dots //date #define dig8 PB6 #define dig9 PB5 #define dig10 PB13 #define dig11 PB12 //NPN D882 #define seg1 PB11 #define seg2 PB10 #define seg3 PB1 #define seg4 PB0 #define seg5 PA7 #define seg6 PA6 #define seg7 PA5 #define blau PB9 #define grun PB8 #define rot PB7 //analoge 7taster #define t1 PA15 #define t2 PB15 #define t3 PA10 #define t4 PA9 #define t5 PA8 #define t6 PB15 #define t7 PB14 int16_t digitise[14][10]; //last: brighteness int8_t onpress[18]; long runningDays=5; uint8_t monthlang[13] = {0,31,28,31,30,31,30,31,30,31,30,31}; uint8_t monthy=5 ;String showmeU="1234";uint8_t blinkt=0; 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(rot,OUTPUT);pinMode(grun,OUTPUT);pinMode(blau,OUTPUT); pinMode(t1,INPUT); pinMode(t2,INPUT); pinMode(t3,INPUT); pinMode(t4,INPUT); pinMode(t5,INPUT); pinMode(t6,INPUT); pinMode(t7,INPUT); } boolean alon=false; boolean downcount=false;uint16_t alarmsec=0;uint8_t downmod=0; void loop() { zeitreise(); } uint16_t dasist[]={3700,3400,3150,2900,2700,2550,2400},wert,fadefine=400,ani=399,aus=0;//25 24measure values oh just many taster you want with one GPIO and resistors uint8_t auswahlzi=0; uint32_t Secs=600,eintag=86400;uint8_t xdigs=11; boolean tplusset=false,tminusset=false,istan=false,updatez=false; uint8_t RGBled[9]; void drueckmich(void){onpress[14]++; if (onpress[14] >=2) {onpress[14]=0; if (digitalRead(t1) == HIGH && onpress[0] ==0 && auswahlzi<9) {onpress[0]=1;auswahlzi++;} if (onpress[0]==1){onpress[1]++;}if(onpress[1]>=10){onpress[1]=0;onpress[0]=0;} if (digitalRead(t2) == HIGH && 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 (digitalRead(t3) == HIGH && onpress[6] ==0) { onpress[6] =1; if(istan==true){istan=false;}else{istan=true;}} if (onpress[6]==1){onpress[7]++;}if(onpress[7]>=20){onpress[7]=0;onpress[6]=0;} if (digitalRead(t4) == HIGH && 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 (digitalRead(t5) == HIGH && onpress[10] ==0) { onpress[10] =1; tplusset=true;} if (onpress[10]==1){onpress[11]++;}if(onpress[11]>=6){onpress[11]=0;onpress[10]=0;} if (digitalRead(t6) == HIGH && onpress[4] ==0) { onpress[4] =1;} if (onpress[4]==1){onpress[5]++;}if(onpress[5]>=10){onpress[5]=0;onpress[4]=0;} if (digitalRead(t7) == HIGH && onpress[12] ==0) { onpress[12] =1; } if (onpress[12]==1){onpress[13]++;}if(onpress[13]>=10){onpress[13]=0;onpress[12]=0;} configdas(); updatez=false; if(auswahlzi >0){zeigseczeit(Secs);nodate();} for(uint8_t durchgeh=0;durchgeh<12;durchgeh+=2){if(onpress[durchgeh]==1){updatez=true;}} if(updatez==true){zeigseczeit(Secs);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==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;}} if (auswahlzi==8) {adder=1; if (tplusset ==true && runningDays <=monthlang[monthy]) {tplusset=false; runningDays+=adder;} if (tminusset==true && runningDays >=1) {tminusset=false;runningDays-=adder;}} if (auswahlzi==9) {adder=1; if (tplusset ==true && monthy<12) {tplusset=false; monthy+=adder;} if (tminusset==true && monthy >=1) {tminusset=false;monthy-=adder;}} if (auswahlzi==8) {} if (auswahlzi==8) {} } void nodate(void) { if(runningDays >monthlang[monthy]){runningDays=1;monthy++; } if(monthy>12){monthy=1;} showmeU=""; if(runningDays <=9){showmeU +="0";} showmeU +=runningDays; if((monthy) <=9) {showmeU +="0";} showmeU +=monthy; if (blinkt <=2&&(auswahlzi)>7) {showmeU[auswahlzi-7]=' ';} } String michauch=""; void zeigseczeit(uint32_t runningSecs){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; setzbalken(michauch); } void zeigzahl(uint32_t mich){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; setzbalken(michauch); } void setzbalken(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]); zeigzeugs(6,showmeU[0]);zeigzeugs(7,showmeU[1]);zeigzeugs(8,showmeU[2]);zeigzeugs(9,showmeU[3]);}//reorder if needet nixe kote system just expand for having seconds displayed boolean einszwei; uint8_t zehl,on=99; long maintime=millis();long maintime2=micros();long maintime3=millis();uint32_t flink=micros();uint32_t nochmal=millis(); void zeitreise(void){ while ((millis()- maintime) >=20) { blinkt++; if (blinkt>4){blinkt=0;} drueckmich();downfade(); maintime = millis();} while ((millis()- maintime2) >= 499) {//zeigzahl(analogRead(tasterM)); //hihi so my 8digs display working just a display running to lazy calculyte taster values by risitorvalues just led print them out :3 result in dasist if(einszwei=false){einszwei=true;digitise[10][7]=aus;}else{einszwei=false;digitise[10][7]=ani;} maintime2 = millis();}//dots here while ((micros()- maintime3) >= 996550) {//correction or correct clock speed 996100 lol i realy should calculate this actually iam still calibrating wachting reference clock and changing this value and reflash for more exact clockword 2-4times a day yay // RGBled[1]=on;//zeigzahl(123456); zeigseczeit(Secs); nodate(); maintime3 = micros(); Secs++; if(Secs>eintag){Secs=0;runningDays++; }}// thistime without date while ((micros()- flink) >= 1000) { machlicht(); flink=micros();} while ((millis()- nochmal) >= 167) {//z0rt 1k/6 if(auswahlzi==0){digitise[10][zehl]=ani/2;}else{digitise[10][auswahlzi]=ani/2;} nochmal=millis();//change here last npn>pnp channel bars below+dots zehl++;if(zehl>6){zehl=0;} } } uint8_t steptz=10; void downfade(void) { for (int16_t digs=6; 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,HIGH);} if (fcount1 == ((fadefine)-digitise[1][sekt])) { digitalWrite(dig2,HIGH);} if (fcount1 == ((fadefine)-digitise[2][sekt])) { digitalWrite(dig3,HIGH);} if (fcount1 == ((fadefine)-digitise[3][sekt])) { digitalWrite(dig4,HIGH);} if (fcount1 == ((fadefine)-digitise[4][sekt])) { digitalWrite(dig5,HIGH);} if (fcount1 == ((fadefine)-digitise[5][sekt])) { digitalWrite(dig6,HIGH);} if (fcount1 == ((fadefine)-digitise[10][sekt])) { digitalWrite(dig7,HIGH);}//just more.. if (fcount1 == ((fadefine)-digitise[6][sekt])) { digitalWrite(dig8,HIGH );} if (fcount1 == ((fadefine)-digitise[7][sekt])) { digitalWrite(dig9,HIGH );} if (fcount1 == ((fadefine)-digitise[8][sekt])) { digitalWrite(dig10,HIGH );} if (fcount1 == ((fadefine)-digitise[9][sekt])){ digitalWrite(dig11,HIGH );} 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();norest();} }}}} void nodig(void) { digitalWrite(dig1,LOW); digitalWrite(dig2,LOW); digitalWrite(dig3,LOW); digitalWrite(dig4,LOW); digitalWrite(dig5,LOW); digitalWrite(dig6,LOW); digitalWrite(dig7,LOW);digitalWrite(dig8,LOW);digitalWrite(dig9,LOW);digitalWrite(dig10,LOW);digitalWrite(dig11,LOW);} 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 norest(void){ digitalWrite(rot,LOW); digitalWrite(grun,LOW); digitalWrite(blau,LOW);} //[MEOW] project by marderchen us3e it or parts if usefull :3