//4x 3Watt high power RGB led + 8x 90kmcd 5mm lense white //2nd prototype build with light knicking 90°C scatter mirror LCD TV backlight foil (parralel glasfibre +transparent foil material) //drivingvoltage atualle 5.24Volt(!more kills blue) //supply: 4x 18650 Li-ion(parralel to cells 2x TP4056 charger) >6A switch> bost step-up //have fun :3 do with it whatever want to //WARNING better not change this kote if not have understand it if rebuild this psychedelic breinhack musicvisualizing exactly like in pictures //versions 1x mobils smal 4x 18650 (this current kote+video) //1x stationary 8x18650 /*pictures * https://marderchen.lima-city.de/NEU+/4x3Watt_RGB_preformance-heatsink-art.jpg * https://marderchen.lima-city.de/NEU+/foileffect_research_colorflasherbase.jpg * https://marderchen.lima-city.de/NEU+/specialfoil_cutting_reflectorshapes.jpg * https://marderchen.lima-city.de/NEU+/lightscatter_psychedelicreflector_built.jpg * https://marderchen.lima-city.de/NEU+/scatterreflector_casing.jpg * https://marderchen.lima-city.de/NEU+/scatterreflector_neardone.jpg * https://marderchen.lima-city.de/NEU+/scattermirrorfoil_syncing.jpg */ #define strobe1 PB10 //- - - - - - X uv R #define strobe2 PB12 //- - - - - X - #define strobe3 PB13 //- - - - - X - #define strobe4 PB14 //- - - - - X - #define strobe5 PB15 //- - - - X - - #define strobe6 PA8 //- - - - X - - #define strobe7 PA9 //- - - - X - - #define strobe8 PA6 //- - - X - - - uv center #define strobe9 PA10 //- - X - - - - #define strobe10 PB5 //- - X - - - - #define strobe11 PB6 //- - X - - - - #define strobe12 PB7 //- X - - - - - #define strobe13 PB8 //- X - - - - - #define strobe14 PB9 //- X - - - - - #define strobe15 PB1 //X - - - - - - uv L #define strobe16 PA7 //w oben #define strobe18 PB0 //w kmittwe #define strobe17 PB11//w unten #define cal1 PC15 #define cal2 PA0 #define t1 PA12 #define t2 PA15 #define channelz 18 #define sqsteps 64 #define mass 16 uint8_t strop[channelz+6]; uint8_t maxx=240; void setup(){ delay(10); pinMode(strobe1,OUTPUT); pinMode(strobe2,OUTPUT); pinMode(strobe3,OUTPUT); pinMode(strobe4,OUTPUT); pinMode(strobe5,OUTPUT); pinMode(strobe6,OUTPUT); pinMode(strobe7,OUTPUT); pinMode(strobe8,OUTPUT); pinMode(strobe9,OUTPUT); pinMode(strobe10,OUTPUT); pinMode(strobe11,OUTPUT); pinMode(strobe12,OUTPUT); pinMode(strobe13,OUTPUT);pinMode(strobe14,OUTPUT); pinMode(strobe15,OUTPUT); pinMode(strobe16,OUTPUT); pinMode(strobe17,OUTPUT); pinMode(strobe18,OUTPUT); pinMode(t1,INPUT); pinMode(cal1,OUTPUT);pinMode(cal2,OUTPUT); allof();delay(300);setzen();} void loop(){zeitreise();} uint8_t beatsplit,azeig[mass][channelz],bzeig[mass][channelz],upper=12,bisneu,beatbetween=128,downer=1,diese,bp=1,led,kled;// uint8_t ubp[]={4,4,8,8,8,16,16,16,16,32,32,32}; uint8_t bpv[]={2,2,2,2,2,2,2,2,1,2}; long littletime=micros();long maintime=millis();long ledbeat=micros(); void zeitreise(void){ if ((millis()- maintime) >= 5){downfade(); maintime = millis();} //istinput(); setfan(); while ((micros()- littletime) >= 5){pulspowder();littletime = micros();} // if ((micros()- ledbeat)>(beatbetween*100)){beatsplit+=bp; //hihi like the optical flashing to beat effect sometimes try other idea :3 if(beatsplit >=64){beatsplit=0;bisneu++;kled=0;diese=0;}//strop[1]=100;}prüfen speed if((beatsplit%upper)==0){ if((kled%2)==0){strop[diese]=azeig[kled][diese];}else{strop[16-diese]=bzeig[kled][diese];}kled++;} if((beatsplit%8)==0){diese++;} if(beatsplit==0){strop[15]=maxx;}//oben if(beatsplit==24){strop[16]=60;} //mitte if(beatsplit==32){strop[17]=maxx;} if(beatsplit==48){strop[16]=100;} if(bisneu>20){upper=ubp[random(0,11)];bisneu=random(0,10);setzen();} ledbeat=micros();} } void setzen(void){ downer=random(1,5)*5;bp=bpv[random(0,9)]; for(uint8_t hier=0;hier=downer){strop[daz]-=downer;}if(strop[daz]>=1){strop[daz]-=1;}}} void pulspowder(void) { for (uint8_t fcount=0; fcount <=maxx; fcount++) { if(fcount==0){allof();} if (fcount <= (maxx-1) && fcount >=1) { if (fcount==(maxx-strop[0])) {digitalWrite(strobe1,HIGH);} if (fcount==(maxx-strop[1])) {digitalWrite(strobe2,HIGH);} if (fcount==(maxx-strop[2])) {digitalWrite(strobe3,HIGH);} if (fcount==(maxx-strop[3])) {digitalWrite(strobe4,HIGH);} if (fcount==(maxx-strop[4])) {digitalWrite(strobe5,HIGH);} if (fcount==(maxx-strop[5])) {digitalWrite(strobe6,HIGH);} if (fcount==(maxx-strop[6])) {digitalWrite(strobe7,HIGH);} if (fcount==(maxx-strop[7])) {digitalWrite(strobe8,HIGH);} if (fcount==(maxx-strop[8])) {digitalWrite(strobe9,HIGH);} if (fcount==(maxx-strop[9])) {digitalWrite(strobe10,HIGH);} if (fcount==(maxx-strop[10])) {digitalWrite(strobe11,HIGH);} if (fcount==(maxx-strop[11])) {digitalWrite(strobe12,HIGH);} if (fcount==(maxx-strop[12])) {digitalWrite(strobe13,HIGH);} if (fcount==(maxx-strop[13])) {digitalWrite(strobe14,HIGH);} if (fcount==(maxx-strop[14])) {digitalWrite(strobe15,HIGH);} if (fcount==(maxx-strop[15])) {digitalWrite(strobe16,HIGH);} if (fcount==(maxx-strop[16])) {digitalWrite(strobe17,HIGH);} if (fcount==(maxx-strop[17])) {digitalWrite(strobe18,HIGH);} } if (fcount>=maxx){allof();}}} void allof(void){ digitalWrite(strobe1, LOW);digitalWrite(strobe2, LOW);digitalWrite(strobe3, LOW);digitalWrite(strobe4, LOW);digitalWrite(strobe5, LOW);digitalWrite(strobe6, LOW); digitalWrite(strobe7, LOW);digitalWrite(strobe8, LOW);digitalWrite(strobe9, LOW);digitalWrite(strobe10, LOW);digitalWrite(strobe11, LOW);digitalWrite(strobe12, LOW); digitalWrite(strobe13, LOW);digitalWrite(strobe14, LOW);digitalWrite(strobe15, LOW);digitalWrite(strobe16, LOW);digitalWrite(strobe17, LOW);digitalWrite(strobe18, LOW); } //alternating generator /* while ((micros()- slowtime)>11900){ if(beatsplit==0){strop[15]=maxx;} if(beatsplit==16){strop[16]=60;} if(beatsplit==32){strop[17]=maxx;digitalWrite(cal1,HIGH);} if(beatsplit==48){strop[16]=100;} for(uint8_t fiz=0;fizsqsteps){beatsplit=0;digitalWrite(cal1,LOW); for(uint8_t wo=0;woblinkdata[wo][wer][1]){blinkdata[wo][wer][2]=0;blinkdata[wo][wer][1]=random(0,5)+2;blinkdata[wo][wer][0]=random(2,10)*20;}}}} slowtime = micros();} while ((micros()- dimmer) >= 4000){for(uint8_t fap=0;fap<1;fap++){for(uint8_t fu=0;fu=5){strop[fu]-=5;}if(strop[fu]>=1){strop[fu]-=1;}}}dimmer = micros();}//downfade //digitalWrite(strobe13,HIGH); */