//kote for fast dimming all GPIOs(most) //used for opticx tree //build in 2x 3Watt blue high power led,4x 3Watt blue high powder,2x White 3Watt high powder, 6x 90.000mcd 0.5Watt 5mm high powder //D882 3Ampere smd npntransistors pulsing negative to 33yF tantal(paralel to LED) to 5V //have fun use kote or parts if usefull :3 [MEOW} #define t1 PA15 #define t2 PA12 #define t3 PB14 #define t4 PB13 #define t5 PB12 #define rot1 PC13 //high power 3watt RGB #define grun1 PC14 #define blau1 PC15 #define rot2 PA0 #define grun2 PA3 #define blau2 PA5 #define hblau1 PA2 //high power 3Watt blau #define hblau2 PA1 #define hblau3 PA4 #define hblau4 PA6 //platine2 #define hweis1 PB0 //high power 3Watt white #define hweis2 PA7 #define uweis6 PB1 //60000mcd 0.5W 5mm white #define uweis5 PB10 #define uweis4 PB11 #define uweis3 PB9 #define uweis2 PB6 #define uweis1 PB7 void setup(){ pinMode(t1, INPUT); pinMode(t2, INPUT); pinMode(t3, INPUT); pinMode(t4, INPUT); pinMode(t5, INPUT); pinMode(hweis1,OUTPUT); pinMode(hweis2,OUTPUT); //3watt white pinMode(uweis1,OUTPUT); pinMode(uweis2,OUTPUT); pinMode(uweis3,OUTPUT); pinMode(uweis4,OUTPUT); pinMode(uweis5,OUTPUT); pinMode(uweis6,OUTPUT);//0.5Watt 5mm pinMode(hblau1,OUTPUT); pinMode(hblau2,OUTPUT); pinMode(hblau3,OUTPUT); pinMode(hblau4,OUTPUT); //3Watt blue pinMode(rot1,OUTPUT); pinMode(blau1,OUTPUT); pinMode(grun1,OUTPUT); pinMode(rot2,OUTPUT); pinMode(blau2,OUTPUT); pinMode(grun2,OUTPUT); //3Watt RGB delay(300); } uint8_t onpress[12]; uint32_t timez=20500;//17340;// need more time for adjusting uint32_t offtime =100; uint8_t whitesp,ww; uint32_t white[10]; uint32_t stepcount,blauu1,blauu2,blauu3,blauu4,blauer; uint32_t root1,root2,gruun1,gruun2,blauz1,blauz2,sometimes; void loop(){ zeitreise();} long maintime=millis();long littletime=micros();long slowtime=micros();long dimmer=micros();long dimmer2=micros(); void zeitreise(void){ while ((millis()- maintime) >= 5){maintime=millis();onpress[10]++;istinput();} while ((micros()- slowtime) >= timez){ whitesp++;if (whitesp >5) {whitesp=1; blauer++;if (blauer >=9){blauer=1;sometimes++; if(sometimes >4){sometimes=1; blauu1=96;blauu2=90;blauu3=110;blauu4=120;blauz1=50;blauz2=50;} if (sometimes <=2){root1=90;root2=90;}} if(blauer==1){blauu1=112;} if(blauer==2){blauu2=20;blauu3=20;} if(blauer==5){blauz1=24;blauz2=20;} if(blauer==4){blauu4=80;blauu1=20;} if(blauer==1){root1=50;} if(blauer==4){root2=50;} ww++;if(ww>16){ww=1;for(uint8_t fi=0;fi<9;fi++){white[fi]=80;}} white[ww/2]=60;} slowtime = micros(); } while ((micros()- dimmer) >= 1000){ for(uint8_t fa=0;fa<9;fa++){if(white[fa]>=10){white[fa]-=10;}}dimmer = micros();}//downfade while ((micros()- dimmer2) >= 13000){ if (blauu1 >=16) {blauu1-=16;} if (blauu2 >=1) {blauu2-=1;} if (blauu3 >=5) {blauu3-=5;} if (blauu4 >=5) {blauu4-=5;} if (blauz1 >=1) {blauz1-=1;} if (blauz2 >=2) {blauz2-=2;} if (root1 >=10) {root1-=10;} if (root2 >=10) {root2-=10;} dimmer2 = micros();}//downfade while ((micros()- littletime) >= 2000){littletime = micros();pulspowder();} } void istinput(void){ if (onpress[10] >4) { if (digitalRead(t1) == HIGH && onpress[0] ==0) { onpress[0] =1; timez+=500;} if (onpress[0] == 1) { onpress[1]++;} if (onpress[1] >= 10) { 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] >= 5) { onpress[3] =0; onpress[2]=0; } if (digitalRead(t3) == HIGH && onpress[4] ==0 && timez >=2) { onpress[4] =1; timez--;} if (onpress[4] == 1) { onpress[5]++;} if (onpress[5] >= 5) { onpress[5] =0; onpress[4]=0; } if (digitalRead(t4) == HIGH && onpress[6] ==0) { onpress[6] =1;} if (onpress[6] == 1) { onpress[7]++;} if (onpress[7] >= 5) { onpress[7] =0; onpress[6]=0; } if (digitalRead(t5) == HIGH && onpress[8] ==0) { onpress[8] =1; timez-=500;} if (onpress[8] == 1) { onpress[9]++;} if (onpress[9] >= 5) { onpress[9] =0; onpress[8]=0; } onpress[10]=0; }} void pulspowder(void) { for (uint32_t fcount=1; fcount <(offtime); fcount++) { if (fcount<=white[1]) {digitalWrite(hweis1,HIGH);} if (fcount> white[1]) {digitalWrite(hweis1, LOW); } if (fcount<=white[2]) {digitalWrite(uweis1,HIGH);} if (fcount> white[2]) {digitalWrite(uweis1, LOW); } if (fcount<=white[3]) {digitalWrite(uweis2,HIGH);} if (fcount> white[3]) {digitalWrite(uweis2, LOW); } if (fcount<=white[4]) {digitalWrite(uweis3,HIGH);} if (fcount> white[4]) {digitalWrite(uweis3, LOW); } if (fcount<=white[5]) {digitalWrite(uweis4,HIGH);} if (fcount> white[5]) {digitalWrite(uweis4, LOW); } if (fcount<=white[6]) {digitalWrite(uweis5,HIGH);} if (fcount> white[6]) {digitalWrite(uweis5, LOW); } if (fcount<=white[7]) {digitalWrite(uweis6,HIGH);} if (fcount> white[7]) {digitalWrite(uweis6, LOW); } if (fcount<=white[8]) {digitalWrite(hweis2,HIGH);} if (fcount> white[8]) {digitalWrite(hweis2, LOW); } if (fcount<=blauu1) {digitalWrite(hblau1, HIGH);} if (fcount> blauu1) {digitalWrite(hblau1, LOW); } if (fcount<=blauu2) {digitalWrite(hblau2, HIGH);} if (fcount> blauu2) {digitalWrite(hblau2, LOW); } if (fcount<=blauu3) {digitalWrite(hblau3, HIGH);} if (fcount> blauu3) {digitalWrite(hblau3, LOW); } if (fcount<=blauu4) {digitalWrite(hblau4, HIGH);} if (fcount> blauu3) {digitalWrite(hblau4, LOW); } if (fcount<=root1) {digitalWrite(rot1,HIGH);} if (fcount> root1) {digitalWrite(rot1, LOW); } if (fcount<=gruun1) {digitalWrite(grun1,HIGH);} if (fcount> gruun1) {digitalWrite(grun1, LOW); } if (fcount<=blauz1) {digitalWrite(blau1,HIGH);} if (fcount> blauz1) {digitalWrite(blau1, LOW); } if (fcount<=root2) {digitalWrite(rot2,HIGH);} if (fcount> root2) {digitalWrite(rot2, LOW); } if (fcount<=gruun2) {digitalWrite(grun2,HIGH);} if (fcount> gruun2) {digitalWrite(grun2, LOW); } if (fcount<=blauz2) {digitalWrite(blau2,HIGH);} if (fcount> blauz2) {digitalWrite(blau2, LOW); } }}