//muhihih 4x irf4905 channel 100wattchipled stroboscope (irf4905gate connectet with 470R to +35V (4Ampere stepup from Li-ion)) irf4905 gate switchet by D882 3A NPN transistor over 470Rfrom STM32F103C8T6 +3V3 to groung) //the scope is bpmtimegesynct to my favorite music (GOA,progressive-trance,psychedelick,"Full on" station from soverryawesome radio Caprice:3 //look so less kotelines somuch complexity *PURRR* [MEOW] project (idea,material and brainfuckingkoting work) by marderchen but R.I.P.Artikel 13! so do with it whatever want to :3 #define strobe1 PA1 //high power 3watt RGB #define strobe2 PC14 #define strobe3 PC15 #define strobe4 PA0 void setup(){ delay(300); pinMode(strobe1,OUTPUT); pinMode(strobe2,OUTPUT); pinMode(strobe3,OUTPUT); pinMode(strobe4,OUTPUT); ratemal();} uint32_t timez=20500; uint8_t beatsplit,strop[5],helligkeiten[5],newtrigger,blinkdata[10][5]; void loop(){ zeitreise();} long littletime=micros();long slowtime=micros();long dimmer=micros(); void zeitreise(void){ while ((micros()- slowtime) >= timez){ beatsplit++;if (beatsplit >40){beatsplit=1;newtrigger++;if(newtrigger>20){newtrigger=random(1,4)*3;ratemal();}} for(uint8_t fiz=0;fiz<4;fiz++){strop[fiz]=blinkdata[round(beatsplit/5)][fiz];} slowtime = micros();} while ((micros()- dimmer) >= 1000){for(uint8_t fu=0;fu<4;fu++){if(strop[fu]>=10){strop[fu]-=10;}}dimmer = micros();}//downfade while ((micros()- littletime) >= 1500){littletime = micros();pulspowder();} } void ratemal(void){ for(uint8_t tik=0;tik<9;tik++){for(uint8_t tok=0;tok<9;tok++){blinkdata[tik][tok]=0;}} for(uint8_t wusch=0;wusch<4;wusch++){helligkeiten[wusch]=(random(0,7)*10)+50;} for(uint8_t wisch=0;wisch<9;wisch++){if(random(0,10)<4){for(uint8_t wasch=0;wasch<4;wasch++){if(random(0,10)<4){blinkdata[wisch][wasch]=helligkeiten[wasch];}}}}} void pulspowder(void) { for (uint32_t fcount=1; fcount <100; fcount++) { if (fcount<=strop[0]) {digitalWrite(strobe1,HIGH);} if (fcount> strop[0]) {digitalWrite(strobe1, LOW); } if (fcount<=strop[1]) {digitalWrite(strobe2,HIGH);} if (fcount> strop[1]) {digitalWrite(strobe2, LOW); } if (fcount<=strop[2]) {digitalWrite(strobe3,HIGH);} if (fcount> strop[2]) {digitalWrite(strobe3, LOW); } if (fcount<=strop[3]) {digitalWrite(strobe4,HIGH);} if (fcount> strop[3]) {digitalWrite(strobe4, LOW); }}}