//super simplen program for driving this https://marderchen.lima-city.de/NEU+/matrix_smdcircuit.jpg a 12GPIO (6channel,6colors,3x5mm leds/36channeltotal) the FLASHING colorSpot light fo the transparentprint mirror background catsPURRRRRt poster.. //its working but idea from mind so not aways optimal far tomuch led glowing from settet of ones.. have to find hasrdware or kot sulution.. // https://marderchen.lima-city.de/NEU+/matrixcontrolworking_butmuchbackglowing.jpg //actualy function flashing chaoticly of not actualy fading out on one of the 36channel every tenth part of second and fading it out.. //MEOW its free use it or parts if usefull.. lines =PNP, LEDcolors = NPN //now running awesome chaoticly #define line1 PB12 #define line2 PB13 #define line3 PB14 #define line4 PB15 #define line5 PB5 #define line6 PB6 #define t1 PA8 #define t2 PA9 #define t3 PA10 #define t4 PA12 #define t5 PA15 #define rot PC13 #define gelb PC14 #define grun PC15 #define blau PA0 #define UV PA1 #define white PA2 int8_t onpress[10]; uint16_t spotbattery[7][7][1]; void setup() { delay(500); pinMode(rot, OUTPUT); pinMode(gelb, OUTPUT); pinMode(grun, OUTPUT); pinMode(blau, OUTPUT); pinMode(UV, OUTPUT); pinMode(white, OUTPUT); pinMode(line1, OUTPUT); pinMode(line2, OUTPUT); pinMode(line3, OUTPUT); pinMode(line4, OUTPUT); pinMode(line5, OUTPUT); pinMode(line6, OUTPUT); pinMode(t1, INPUT); pinMode(t2, INPUT); pinMode(t3 ,INPUT); pinMode(t4 ,INPUT); pinMode(t5 ,INPUT); digitalWrite(line1,HIGH); digitalWrite(line2,HIGH); digitalWrite(line3,HIGH); digitalWrite(line4,HIGH); digitalWrite(line5,HIGH); digitalWrite(line6,HIGH); } uint16_t laaag,zeit1; uint8_t fadedrift=10; uint8_t fademini=2; uint8_t fademaxi=40; uint8_t randomfade=10; uint16_t timedrift=100; uint8_t timemin=10; uint16_t timemax=300; uint16_t zuspaet=100; void loop() { zeitreise(); istinput(); } void istinput(void){ if (zeit1 >=2) { if (digitalRead(t1) == HIGH && onpress[0] ==0) { onpress[0] =1; timemax+=10;} 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; timemax-=10; } if (onpress[2] == 1) { onpress[3]++;} if (onpress[3] >= 25) { onpress[3] =0; onpress[2]=0; } if (digitalRead(t3) == HIGH && onpress[4] ==0) { onpress[4] =1; } if (onpress[4] == 1) { onpress[5]++;} if (onpress[5] >= 10) { onpress[5] =0; onpress[4]=0; } if (digitalRead(t4) == HIGH && onpress[6] ==0) { onpress[6] =1; fademaxi+=10;} if (onpress[6] == 1) { onpress[7]++; } if (onpress[7] >= 10) { onpress[7] =0; onpress[6]=0;} if (digitalRead(t5) == HIGH && onpress[8] ==0) { onpress[8] =1; fademaxi-=10; } if (onpress[8] == 1) { onpress[9]++;} if (onpress[9] >= 10) { onpress[9] =0; onpress[8]=0; } 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) {getfader(); getspeedy(); maintime3 = millis();} while ((millis()- maintime2) >= fadedrift) {negativation(); maintime2 = millis();} while ((millis()- timez) >= timedrift) {timez = millis(); choseone(random(0,36));} while ((micros()-flash) >= 100) { schaltzeugs(laaag); flash = micros();} } void getfader(void){ if (fadedrift > randomfade) {fadedrift--;} if (fadedrift < randomfade) {fadedrift++;} if (fadedrift == randomfade) {randomfade=random(fademini,fademaxi);} } void getspeedy(void){ for (int8_t fuenf=0; fuenf <=(timedrift/50+1); fuenf++) { //hihi lets just calulate stm more find solution short for changevalue more if value geting bigger if (timedrift > zuspaet) {timedrift--;} if (timedrift < zuspaet) {timedrift++;} if (timedrift == zuspaet) {zuspaet=random(timemin,timemax);} }} void negativation(void){ for (int8_t eins=0; eins <=5; eins++) { for (int8_t zwei=0;zwei <=5; zwei++) { if( spotbattery[eins][zwei][0] >0) { spotbattery[eins][zwei][0]--;}}} } uint8_t merkdirdas=0; void choseone (uint8_t ones){ merkdirdas=0; for (int8_t drei=0; drei <=5; drei++) { for (int8_t vier=0;vier <=5; vier++) { merkdirdas++; if (merkdirdas == ones && spotbattery[drei][vier][0] ==0) {spotbattery[drei][vier][0]=60;}}} } void schaltzeugs(uint16_t laaag) {// laaag left from other try.. causet dental ääh tantalum capacitors 33yF 10V for efery channe its not even if run charge duty every 2000microseconds noled();norest(); for (int8_t welchs=0; welchs <=5; welchs++) { if (welchs==0) { digitalWrite(rot, HIGH );} if (welchs==1) { digitalWrite(gelb,HIGH );} if (welchs==2) { digitalWrite(grun,HIGH );} if (welchs==3) { digitalWrite(blau,HIGH );} if (welchs==4) { digitalWrite(UV, HIGH );} if (welchs==5) { digitalWrite(white,HIGH );} for (int8_t laag=0; laag <=61; laag++) { if (laag == 0) {norest();} if (laag <= 59 && laag >=1) { if (laag == (60-spotbattery[welchs][0][0])) { digitalWrite(line1, LOW );} if (laag == (60-spotbattery[welchs][1][0])) { digitalWrite(line2, LOW );} if (laag == (60-spotbattery[welchs][2][0])) { digitalWrite(line3, LOW );} if (laag == (60-spotbattery[welchs][3][0])) { digitalWrite(line4, LOW );} if (laag == (60-spotbattery[welchs][4][0])) { digitalWrite(line5, LOW );} if (laag == (60-spotbattery[welchs][5][0])) { digitalWrite(line6, LOW );} } if (laag >=60) {noled();norest();} }}} void noled(void) {digitalWrite(rot,LOW); digitalWrite(gelb,LOW); digitalWrite(grun,LOW); digitalWrite(blau,LOW); digitalWrite(UV,LOW); digitalWrite(white,LOW);} void norest(void) {digitalWrite(line1,HIGH); digitalWrite(line2,HIGH); digitalWrite(line3,HIGH); digitalWrite(line4,HIGH); digitalWrite(line5,HIGH); digitalWrite(line6,HIGH); } // [MEOW] more rainbowpower! creating and planing my LEDmatixen in head caused if use standart bitmultiplaxer or max for standartmatrix loosing extremly brightenes.. leds in matrix flickering caused led is of //if the other LED pulsing.. with diodseperatet capacitor for each led.. if LED pulsed on, capacitor also fast charged.. durring other leds pulsing LED still on caused //continiu glowing from capacitärchartge (cute brightness boossting laag) until capacitor is discharged and next powerpuls charge again =no flickering also LED is happy caused capacoter discharged resistance is low so led became no leddead high puls voltage..