//MEOW =^.^= //Kote for epic WHITE led clock to upgrade capacito9rmatrixidea.. and puuurRRR this es realy epic white every of 170 SMD leds HAVE 0.5Watt and the capacitormatrix idea realy using it //fixed one NPN failture kote progressing not running with function //pics /* https://marderchen.lima-city.de/NEU+/epic_white_clock_ledtest_wtfhihi.jpg * https://marderchen.lima-city.de/NEU+/epic_white_ledmatrix-clock_supplyfortoday.jpg * https://marderchen.lima-city.de/NEU+/epic_white_ledmatrix-clock_supply_progressing.jpg * https://marderchen.lima-city.de/NEU+/epic_white_ledmatrix-clock_gluedalu.jpg * https://marderchen.lima-city.de/NEU+/epic_white_ledmatrix-clock_wirework.jpg * have fun use idea if usefull its burning in eyes :3 */ /* dig1 dig2 .. dig3.. dig4 * ---1-- * | | * 4 2 * | | * ---3--- * | | * 6 5 []8 * | | * ---7--- * **seg1 .. seg2.. */ #define seg1 PB12 #define seg2 PB13 #define seg3 PB14 #define seg4 PB15 #define seg5 PA8 #define seg6 PA9 #define seg7 PA10 #define dig1 PB11 #define dig2 PB10 #define dig3 PB1 #define dig4 PB0 #define block6 PB5 #define block5 PB6 #define block4 PB7 #define block3 PB8 #define block2 PB9 #define LED5 PA7 #define LED4 PA6 #define LED3 PA5 #define LED2 PA4 #define LED1 PC14 //fail output fine, but LED powering always.. even if changing porty found failture NPN on PA3 (disconnected using PC14now #define NPNj PC15 #define NPNk PA3 #define block1 PC13 #define tmulti PA0 #define t1 PA12 #define t2 PA15 uint8_t digssegz[7][8][2]; //last: brighteness, (fadetime) // 4NPN 7PNP uint8_t runseconds[7][7][2]; // last: brighteness, (fadetime) // 5NPN 6PNP uint8_t runbar[35][2]; int8_t onpress[5]; void setup() { pinMode(seg1, OUTPUT); pinMode(seg2, OUTPUT); pinMode(seg3, OUTPUT); pinMode(seg4, OUTPUT); pinMode(seg5, OUTPUT); pinMode(seg6, OUTPUT); pinMode(seg7, OUTPUT); pinMode(dig1, OUTPUT); pinMode(dig2, OUTPUT); pinMode(dig3, OUTPUT); pinMode(dig4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED1, OUTPUT); pinMode(block6, OUTPUT); pinMode(block5, OUTPUT); pinMode(block4, OUTPUT); pinMode(block3, OUTPUT); pinMode(block2, OUTPUT); pinMode(block1, OUTPUT); pinMode(t1, INPUT); pinMode(t2, INPUT); noseg(); noblock(); } uint16_t zeit1; void loop() { zeitreise(); //runbar[1][2]=50; //secondssorter(); runseconds[1][0][0]=55; } void istinput(void){ if (zeit1 >=2) { if (digitalRead(t1) == HIGH && onpress[0] ==0) { onpress[0] =1; } if (onpress[0] == 1) { onpress[1]++; } if (onpress[1] >= 20) { onpress[1] =0; onpress[0]=0; } if (digitalRead(t2) == HIGH && onpress[2] ==0) { onpress[2] =1; } if (onpress[2] == 1) { onpress[3]++;} if (onpress[3] >= 25) { onpress[3] =0; onpress[2]=0; } if (analogRead(tmulti) >10) { } zeit1=0;} } long maintime=millis(); long maintime2=millis(); long maintime3=millis(); long timez=millis(); long flash=micros(); void zeitreise(void){ while ((millis()- maintime) >= 5){zeit1++; maintime = millis();} while ((millis()- maintime3) >= 200) { maintime3 = millis();} while ((millis()- maintime2) >= 200) { maintime2 = millis();} while ((millis()- timez) >= 999) {timez = millis(); } while ((micros()-flash) >= 500) { schaltzeugs(); flash = micros();} } void negativation(void){ for (int8_t eins=0; eins <=5; eins++) { for (int8_t zwei=0;zwei <=5; zwei++) { }} } /* dig0 dig1 .. dig2.. dig3 * ---0-- * | | * 3 1 * | | * ---2--- * | | * 5 4 []8 * | | * ---6--- * **seg1 .. seg2.. */ uint8_t helwert=59; uint8_t auswert=0; void zeigzeugs(int wo,char wasden) { if (wasden == ' ') {digssegz[wo][0][0]=auswert; digssegz[wo][1][0]=auswert; digssegz[wo][2][0]=auswert; digssegz[wo][3][0]=auswert; digssegz[wo][4][0]=auswert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=auswert;} if (wasden == '0') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=auswert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=helwert; digssegz[wo][6][0]=helwert;} if (wasden == '1') {digssegz[wo][0][0]=auswert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=auswert; digssegz[wo][3][0]=auswert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=auswert;} if (wasden == '2') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=auswert; digssegz[wo][4][0]=auswert; digssegz[wo][5][0]=helwert; digssegz[wo][6][0]=helwert;} if (wasden == '3') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=auswert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=auswert; digssegz[wo][5][0]=helwert; digssegz[wo][6][0]=helwert;} if (wasden == '4') {digssegz[wo][0][0]=auswert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=auswert;} if (wasden == '5') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=auswert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=helwert;} if (wasden == '6') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=auswert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=helwert; digssegz[wo][6][0]=helwert;} if (wasden == '7') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=auswert; digssegz[wo][3][0]=auswert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=auswert;} if (wasden == '8') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=helwert; digssegz[wo][6][0]=helwert;} if (wasden == '9') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=helwert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=helwert;} if (wasden == '°') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=helwert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=auswert; digssegz[wo][5][0]=auswert; digssegz[wo][6][0]=auswert;} if (wasden == 'C') {digssegz[wo][0][0]=helwert; digssegz[wo][1][0]=auswert; digssegz[wo][2][0]=helwert; digssegz[wo][3][0]=helwert; digssegz[wo][4][0]=auswert; digssegz[wo][5][0]=helwert; digssegz[wo][6][0]=helwert;} } uint8_t merker=0; void secondssorter(void){ merker =0; for (int8_t blocks=0; blocks <=6; blocks++) { for (int8_t ledss=0; ledss <=4; ledss++) { merker++; runbar[merker][0]=runseconds[ledss][blocks][0]; }} } void schaltzeugs(void) {// laaag left from other try.. causet dental ääh tantalum capacitors 33yF 10V for efery channe its not even if run charge duty every 2000microseconds noseg();noblock();nodig(); noLED(); for (int8_t welchs=0; welchs <=12; welchs++) { if (welchs==0) { digitalWrite(seg1,HIGH);}// digitalWrite(block1,HIGH);} if (welchs==1) { digitalWrite(seg2,HIGH);}// digitalWrite(block2,HIGH);} if (welchs==2) { digitalWrite(seg3,HIGH);}// digitalWrite(block3,HIGH);} if (welchs==3) { digitalWrite(seg4,HIGH);}// digitalWrite(block4,HIGH);} if (welchs==4) { digitalWrite(seg5,HIGH);}// digitalWrite(block5,HIGH);} if (welchs==5) { digitalWrite(seg6,HIGH);}// digitalWrite(block6,HIGH);} if (welchs==6) { digitalWrite(seg7,HIGH); } if (welchs==7) { digitalWrite(block1,HIGH);} if (welchs==8) { digitalWrite(block2,HIGH);} if (welchs==9) { digitalWrite(block3,HIGH);} if (welchs==10) { digitalWrite(block4,HIGH);} if (welchs==11) { digitalWrite(block5,HIGH);} if (welchs==12) { digitalWrite(block6,HIGH);} for (int8_t laag=0; laag <=61; laag++) { if (laag == 0) {nodig(); noLED();} if (laag <= 59 && laag >=1) { if(welchs <=6){ if (laag == (60-digssegz[0][welchs][0])) { digitalWrite(dig1, HIGH );} if (laag == (60-digssegz[1][welchs][0])) { digitalWrite(dig2, HIGH );} if (laag == (60-digssegz[2][welchs][0])) { digitalWrite(dig3, HIGH );} if (laag == (60-digssegz[3][welchs][0])) { digitalWrite(dig4, HIGH );}} if (welchs >=7 ) { if (laag == (60-runseconds[0][welchs-7][0])) { digitalWrite(LED1, LOW);} if (laag == (60-runseconds[1][welchs-7][0])) { digitalWrite(LED2, HIGH);} if (laag == (60-runseconds[2][welchs-7][0])) { digitalWrite(LED3, HIGH);} if (laag == (60-runseconds[3][welchs-7][0])) { digitalWrite(LED4, HIGH);} if (laag == (60-runseconds[4][welchs-7][0])) { digitalWrite(LED5, HIGH);}} } if (laag >=60) {nodig(); noLED();} } noseg();noblock();}} /* // PNP NPN vertausch void schaltzeugs(void) {// laaag left from other try.. causet dental ääh tantalum capacitors 33yF 10V for efery channe its not even if run charge duty every 2000microseconds nodig(); noLED();noseg(); noblock(); for (int8_t welchs=0; welchs <=4; welchs++) { if (welchs==0) {digitalWrite(dig1, HIGH ); digitalWrite(LED1,HIGH);} if (welchs==1) {digitalWrite(dig2, HIGH ); digitalWrite(LED2,HIGH);} if (welchs==2) {digitalWrite(dig3, HIGH ); digitalWrite(LED3,HIGH);} if (welchs==3) {digitalWrite(dig4, HIGH ); digitalWrite(LED4,HIGH);} if (welchs==4) { digitalWrite(LED5,HIGH);} if (welchs==5) { digitalWrite(LED2,HIGH);} if (welchs==6) { digitalWrite(LED3,HIGH);} if (welchs==7) { digitalWrite(LED4,HIGH);} if (welchs==8) { digitalWrite(LED5,HIGH);} for (int8_t laag=0; laag <=61; laag++) { if (laag == 0) {noseg(); noblock();} if (laag <= 59 && laag >=1) { if (welchs <=3) { if (laag == (60-digssegz[welchs][0][0])) { digitalWrite(seg1,LOW);}// [digs][segs] if (laag == (60-digssegz[welchs][1][0])) { digitalWrite(seg2,LOW);} if (laag == (60-digssegz[welchs][2][0])) { digitalWrite(seg3,LOW);} if (laag == (60-digssegz[welchs][3][0])) { digitalWrite(seg4,LOW);} if (laag == (60-digssegz[welchs][4][0])) { digitalWrite(seg5,LOW);} if (laag == (60-digssegz[welchs][5][0])) { digitalWrite(seg6,LOW);} if (laag == (60-digssegz[welchs][6][0])) { digitalWrite(seg7,LOW);} } if (welchs <=4) { if (laag == (60-runseconds[welchs][0][0])) { digitalWrite(block1,LOW);}//[leds][blocks] if (laag == (60-runseconds[welchs][1][0])) { digitalWrite(block2,LOW);} if (laag == (60-runseconds[welchs][2][0])) { digitalWrite(block3,LOW);} if (laag == (60-runseconds[welchs][3][0])) { digitalWrite(block4,LOW);} if (laag == (60-runseconds[welchs][4][0])) { digitalWrite(block5,LOW);} } } if (laag >=60) {noseg(); noblock();} }}} */ 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 noblock(void) {digitalWrite(block1,LOW); digitalWrite(block2,LOW); digitalWrite(block3,LOW); digitalWrite(block4,LOW); digitalWrite(block5,LOW); digitalWrite(block6,LOW); } void nodig(void) {digitalWrite(dig1,LOW); digitalWrite(dig2,LOW); digitalWrite(dig3,LOW); digitalWrite(dig4,LOW);} void noLED(void){digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED1,HIGH); } /* int heller=0; void capfadetest(void) { while ((micros()-startriger) >= 1500) { digitalWrite(grun1,HIGH); for (int8_t colorz=1; colorz <=3; colorz++) { for (int8_t liene=1; liene <=2; liene++) { for (int16_t fcount1=0; fcount1 <2002; fcount1++) { if (fcount1 == (2000-heller)){ digitalWrite(B1, LOW); } if (fcount1 >= 2000) {digitalWrite(B1, HIGH);} }}} startriger = micros(); heller++; if (heller >2000) {heller=0;} } } */ // [MEOW] more rainbowpower!