//MEOW =^.^= kot vor Enter rainbow world matrix (16x 3Watt RGB flasher.. currentlich working on tell stm bpm with 2buttons hihi working awesome this idea now.. rest omming currently slow caused ill :/ #define block1 PC13 #define block2 PC14 #define block3 PC15 #define block4 PA0 #define rot3 PB9 #define grun3 PB8 #define blau3 PB7 #define rot4 PB6 #define grun4 PB5 #define blau4 PA10 #define rot1 PA9 #define grun1 PA8 #define blau1 PB15 #define rot2 PB14 #define grun2 PB13 #define blau2 PB12 #define LED1 PA1 #define LED2 PA2 #define LED3 PA3 #define LED4 PA4 #define LED5 PA5 #define LED6 PA6 #define Bred PA7 #define Bblue PB10 #define T1 PB0 #define T2 PB1 #define Tfix1 PA15 #define Tfix2 PA12 uint8_t leds[18][5]; //last: brighteness, (fadetime) // 4NPN 7PNP uint8_t info[9]; // last: brighteness, (fadetime) // 5NPN 6PNP int8_t onpress[5]; uint8_t steps=3; void setup() { pinMode(block1, OUTPUT); pinMode(block2, OUTPUT); pinMode(block3, OUTPUT); pinMode(block4, OUTPUT); pinMode(rot1, OUTPUT); pinMode(grun1, OUTPUT); pinMode(blau1, OUTPUT); pinMode(rot2, OUTPUT); pinMode(grun2, OUTPUT); pinMode(blau2, OUTPUT); pinMode(rot3, OUTPUT); pinMode(grun3, OUTPUT); pinMode(blau3, OUTPUT); pinMode(rot4, OUTPUT); pinMode(grun4, OUTPUT); pinMode(blau4, OUTPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); pinMode(Bred, OUTPUT);pinMode(Bblue, OUTPUT); pinMode(T1, INPUT); pinMode(T2, INPUT); pinMode(Tfix1, INPUT); pinMode(Tfix2, INPUT); noLEDs(); } uint16_t zeit1; void loop() { zeitreise(); teachbeat(); //leds[2][0]=0; leds[2][1]=55; //leds[9][0]=0; leds[9][1]=55; //leds[5][0]=0; leds[5][1]=55; //leds[13][0]=0; leds[13][1]=55; //leds[9][0]=0; leds[9][1]=55; //leds[1][0]=0; leds[1][1]=55; } long beatleng =100000; boolean entwederoder=false; boolean startend=false; boolean bluestep=false; uint8_t ab=0; void teachbeat(void){// hihi think beast beatsyncmethode tapsing taster to beat and controller auto contiu with tapsenspeed calculater betweensteps itsels.. use idea if usefull.. but its manual beatteching also howmany steps.. but works for every musicbpm, if (digitalRead(Tfix1) ==HIGH && entwederoder==false) { if (startend==false){beatleng=0;startend=true;}startend=false; entwederoder=true;} if (digitalRead(Tfix2) ==HIGH && entwederoder==true ) {entwederoder=false;} } void coloursetz(uint8_t dieled){ // leds[dieled][2] //0=colour, 1=bright, 2red3gren4blue if (leds[dieled][0]==0){ leds[dieled][2]=leds[dieled][1]; leds[dieled][3]=0; leds[dieled][4]=0;} //red if (leds[dieled][0]==1){ leds[dieled][2]=round(leds[dieled][1]/2); leds[dieled][3]=0; leds[dieled][4]=round(leds[dieled][1]/3);} //pink if (leds[dieled][0]==2){ leds[dieled][2]=round(leds[dieled][1]/2); leds[dieled][3]=0; leds[dieled][4]=round(leds[dieled][1]/2);} //mangenta if (leds[dieled][0]==3){ leds[dieled][2]=round(leds[dieled][1]/3); leds[dieled][3]=0; leds[dieled][4]=round(leds[dieled][1]/2);} //purple if (leds[dieled][0]==4){ leds[dieled][2]=0; leds[dieled][3]=0; leds[dieled][4]=leds[dieled][1];} //blue if (leds[dieled][0]==5){ leds[dieled][2]=0; leds[dieled][3]=round(leds[dieled][1]/4); leds[dieled][4]=round(leds[dieled][1]/2);} //cyanblue if (leds[dieled][0]==6){ leds[dieled][2]=0; leds[dieled][3]=round(leds[dieled][1]/2); leds[dieled][4]=round(leds[dieled][1]/2);} //cyan if (leds[dieled][0]==7){ leds[dieled][2]=0; leds[dieled][3]=leds[dieled][1]; leds[dieled][4]=0;} //green if (leds[dieled][0]==8){ leds[dieled][2]=round(leds[dieled][1]/3); leds[dieled][3]=round(leds[dieled][1]/2); leds[dieled][4]=0;} //yellow if (leds[dieled][0]==9){ leds[dieled][2]=round(leds[dieled][1]/2); leds[dieled][3]=round(leds[dieled][1]/3); leds[dieled][4]=0;} //orange }//kittens kant kount.. whatever fuzzelfurrmind.. just mostly not absolutlyworking if furrfurrheadwridedown :3 void istinput(void){ if (zeit1 >=2) { if (digitalRead(T1) == HIGH && onpress[0] ==0&& steps <14) { onpress[0] =1; steps++; } if (onpress[0] == 1) { onpress[1]++; } if (onpress[1] >= 20) { onpress[1] =0; onpress[0]=0; } if (digitalRead(T2) == HIGH && onpress[2] ==0&& steps >0) { onpress[2] =1; steps--;} if (onpress[2] == 1) { onpress[3]++;} if (onpress[3] >= 25) { onpress[3] =0; onpress[2]=0; } zeit1=0;} } long maintime=millis(); long maintime2=micros(); long maintime3=micros();long beaty=micros(); long timez=micros(); long flash=micros(); uint32_t beatcach=0; uint32_t beatcach2=0; void zeitreise(void){ while ((millis()- maintime) >= 5){zeit1++; istinput();maintime = millis(); pulsblau(); bluestep=false;} while ((micros()- beaty) >= 100) {beaty=micros(); if(entwederoder ==true) {beatleng++;} if (beatcach >=beatleng) {beatcach=0; ab++; if (ab >1){ab=0;} showpulse(ab); }beatcach++;beatcach2++; if(beatcach2 >round(beatleng/steps)) {beatcach2=0; blitzy();} } while ((micros()- timez) >= 1000) {negativation();timez = micros();} while ((micros()-flash) >= 2) { schaltzeugs(); flash = micros();} } uint8_t zahly,zahlyzahl,picone; void pulsblau(void){ if (bluestep==true) {digitalWrite(Bblue,HIGH);} if (bluestep==false) {digitalWrite(Bblue,LOW);} } void blitzy(void){ zahly=random(1,8); zahlyzahl=random(0,9); for (uint8_t ka=0; ka 0){leds[eins][1]--;} }} void applysteps(void){ for (uint8_t zwei=0;zwei <=6; zwei++) { if (zwei round(steps/2)) {info[zwei]=0;} }} void schaltzeugs(void) {// laaag left from other try.. causet dental ääh tantalum capacitors 33yF 10V for efery ledcoloursinglechip.. 16leds*3colours..its not even if run charge duty every 2000microseconds noblock();noLED(); noLEDs(); applysteps(); for (uint8_t variable=0; variable<=15; variable++) {coloursetz(variable);} for (uint8_t welchs=0; welchs <=12; welchs+=4) { if (welchs==0) { digitalWrite(block1,HIGH);} if (welchs==4) { digitalWrite(block2,HIGH);} if (welchs==8) { digitalWrite(block3,HIGH);} if (welchs==12) { digitalWrite(block4,HIGH);} for (int8_t laag=0; laag <=121; laag++) { if (laag == 0) { noLED();noLEDs();} if (laag <= 119 && laag >=1) { if (laag == (120-leds[welchs][2])) { digitalWrite(rot1, HIGH);} if (laag == (120-leds[welchs][3])) { digitalWrite(grun1, HIGH);} if (laag == (120-leds[welchs][4])) { digitalWrite(blau1, HIGH);} if (laag == (120-leds[welchs+1][2])) { digitalWrite(rot2, HIGH);} if (laag == (120-leds[welchs+1][3])) { digitalWrite(grun2, HIGH);} if (laag == (120-leds[welchs+1][4])) { digitalWrite(blau2, HIGH);} if (laag == (120-leds[welchs+2][2])) { digitalWrite(rot3, HIGH);} if (laag == (120-leds[welchs+2][3])) { digitalWrite(grun3, HIGH);} if (laag == (120-leds[welchs+2][4])) { digitalWrite(blau3, HIGH);} if (laag == (120-leds[welchs+3][2])) { digitalWrite(rot4, HIGH);} if (laag == (120-leds[welchs+3][3])) { digitalWrite(grun4, HIGH);} if (laag == (120-leds[welchs+3][4])) { digitalWrite(blau4, HIGH);} if (laag == (120-info[0])) { digitalWrite(LED1, LOW);} if (laag == (120-info[1])) { digitalWrite(LED2, LOW);} if (laag == (120-info[2])) { digitalWrite(LED3, LOW);} if (laag == (120-info[3])) { digitalWrite(LED4, LOW);} if (laag == (120-info[4])) { digitalWrite(LED5, LOW);} if (laag == (120-info[5])) { digitalWrite(LED6, LOW);}} if (laag >=120) {noblock(); noLEDs();} } noblock();noLED();noLEDs(); }} void noLED(void) {digitalWrite(rot1,LOW); digitalWrite(grun1,LOW); digitalWrite(blau1,LOW); digitalWrite(rot2,LOW); digitalWrite(grun2,LOW); digitalWrite(blau2,LOW); digitalWrite(rot3,LOW); digitalWrite(grun3,LOW); digitalWrite(blau3,LOW); digitalWrite(rot4,LOW); digitalWrite(grun4,LOW); digitalWrite(blau4,LOW); } void noblock(void) {digitalWrite(block1,LOW); digitalWrite(block2,LOW); digitalWrite(block3,LOW); digitalWrite(block4,LOW);} void noLEDs(void){digitalWrite(LED1,HIGH);digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); } // [MEOW] more rainbowpower! this RGB matrix is near maximum from cheap singlechip brightpowder with used ~1Watt/chip(color) only brightest chip aviable from awesome cute producer4 Luminus are brighter (purrr brightest signlechip led producer worldwide just to expensive for a marten)