//126channel 42x 5mm 4pin RGB //hihi nosleeptime actually day4 awaken so enough time to create new RGBflashfade sequenz generator //nice have trained alot of math array handling by creating the java(jquery) scripts in html animations from https://www.marderchen.lima-city.de/wuselcode/ //so can develop the new led fadesequenz generator much more efficient :3 #define pnp1 PA3 #define pnp2 PA4 #define pnp3 PA5 #define pnp4 PA6 #define pnp5 PA7 #define pnp6 PA8 #define pnp7 PA9 #define pnp8 PA10 #define pnp9 PB5 #define pnp10 PB6 #define pnp11 PB7 #define pnp12 PB8 #define pnp13 PB9 #define pnp14 PB10 #define pnp15 PB11 #define pnp16 PB12 #define pnp17 PB13 #define pnp18 PB14 #define pnp19 PB15 #define pnp20 PB0 #define pnp21 PB1 #define npn1 PC13 #define npn2 PC14 #define npn3 PC15 #define npn4 PA0 #define npn5 PA1 #define npn6 PA2 #define chans 126 #define steps 48 long tpuls=micros();long tbeat=micros();long tfade=micros(); uint8_t data[chans+1][11],maxx=200; void setup(){ delay(10); pinMode(pnp1,OUTPUT); pinMode(pnp2,OUTPUT); pinMode(pnp3,OUTPUT); pinMode(pnp4,OUTPUT); pinMode(pnp5,OUTPUT); pinMode(pnp6,OUTPUT); pinMode(pnp7,OUTPUT); pinMode(pnp8,OUTPUT); pinMode(pnp9,OUTPUT); pinMode(pnp10,OUTPUT); pinMode(pnp11,OUTPUT); pinMode(pnp12,OUTPUT); pinMode(pnp13,OUTPUT);pinMode(pnp14,OUTPUT); pinMode(pnp15,OUTPUT); pinMode(pnp16,OUTPUT); pinMode(pnp17,OUTPUT); pinMode(pnp18,OUTPUT); pinMode(pnp18,OUTPUT);pinMode(pnp19,OUTPUT); pinMode(pnp20,OUTPUT); pinMode(pnp21,OUTPUT); pinMode(npn1,OUTPUT); pinMode(npn2,OUTPUT); pinMode(npn3,OUTPUT); pinMode(npn4,OUTPUT); pinMode(npn5,OUTPUT); pinMode(npn6,OUTPUT); pnpof();delay(300);} void loop(){zeitreise();} void zeitreise(void){ while((micros()- tbeat)>(20100)){///6 for(uint8_t p=0;p=steps*data[p][4]){data[p][9]=0; if(data[p][8] >0){data[p][8]-=1;} //auszeit gilt für times ohne multi if(data[p][8]==0){data[p][10]++;} if(data[p][10]>=round(data[p][3]/data[p][4])){ //sequenzcounter gilt für times ohne multi data[p][10]=0; data[p][8]=random(chans/20,chans/4); //set alles neu kleiner zahl=mehr ledtraffic data[p][1]=random(0,4)*10+160; //starthelligkeit bis 200 data[p][3]=random(1,5)*4; //oft wiederhol sequenz bis neu data[p][4]=random(1,3); //mehrfache bufferlänge von steps data[p][7]=random(0,100); //ob laag start if(data[p][7]<70){data[p][6]=random(steps/8,((steps/2)*data[p][4]));} //laag bis modulatorstart else{data[p][6]=0;} //nix laag only fixed interfall data[p][5]=random(4,((steps/4)*data[p][4])-data[p][6]); //steps modulator data[p][2]=random(1,8)*3+((steps/3)/data[p][5]); //wert abziehscvhritt von helligeit> kleiner modulator mehr wert }}} //data[0][10]++;if(data[0][10]>=chans){data[0][10]=0;}data[data[0][10]][0]=100; //ledtest tbeat=micros();} //data 0:dutyout 1:dutypre 2:duty-wert 3:times 4:sqmulti 5:modulator 6:modullatstart 7:maybestart 8:auszeit 9:countbeat 10:countseq while((micros()- tfade)>=24){ for(uint8_t q=0;q=data[q][2]){data[q][0]-=data[q][2];}if(data[q][0]>0){data[q][0]--;}} tfade=micros();} while((micros()- tpuls)>= 4){pulspowder(); tpuls=micros();}} void pulspowder(void) { for (uint8_t sector=0;sector=1) { if (duty==(maxx-data[sector+0][0])) {digitalWrite(pnp1,LOW);} if (duty==(maxx-data[sector+1][0])) {digitalWrite(pnp2,LOW);} if (duty==(maxx-data[sector+2][0])) {digitalWrite(pnp3,LOW);} if (duty==(maxx-data[sector+3][0])) {digitalWrite(pnp4,LOW);} if (duty==(maxx-data[sector+4][0])) {digitalWrite(pnp5,LOW);} if (duty==(maxx-data[sector+5][0])) {digitalWrite(pnp6,LOW);} if (duty==(maxx-data[sector+6][0])) {digitalWrite(pnp7,LOW);} if (duty==(maxx-data[sector+7][0])) {digitalWrite(pnp8,LOW);} if (duty==(maxx-data[sector+8][0])) {digitalWrite(pnp9,LOW);} if (duty==(maxx-data[sector+9][0])) {digitalWrite(pnp10,LOW);} if (duty==(maxx-data[sector+10][0])) {digitalWrite(pnp11,LOW);} if (duty==(maxx-data[sector+11][0])) {digitalWrite(pnp12,LOW);} if (duty==(maxx-data[sector+12][0])) {digitalWrite(pnp13,LOW);} if (duty==(maxx-data[sector+13][0])) {digitalWrite(pnp14,LOW);} if (duty==(maxx-data[sector+14][0])) {digitalWrite(pnp15,LOW);} if (duty==(maxx-data[sector+15][0])) {digitalWrite(pnp16,LOW);} if (duty==(maxx-data[sector+16][0])) {digitalWrite(pnp17,LOW);} if (duty==(maxx-data[sector+17][0])) {digitalWrite(pnp18,LOW);} if (duty==(maxx-data[sector+18][0])) {digitalWrite(pnp19,LOW);} if (duty==(maxx-data[sector+19][0])) {digitalWrite(pnp20,LOW);} if (duty==(maxx-data[sector+20][0])) {digitalWrite(pnp21,LOW);}} if (duty>=maxx){pnpof();}}npnof();}} void pnpof(void){ digitalWrite(pnp1, HIGH);digitalWrite(pnp2, HIGH);digitalWrite(pnp3, HIGH);digitalWrite(pnp4, HIGH);digitalWrite(pnp5, HIGH);digitalWrite(pnp6, HIGH); digitalWrite(pnp7, HIGH);digitalWrite(pnp8, HIGH);digitalWrite(pnp9, HIGH);digitalWrite(pnp10, HIGH);digitalWrite(pnp11, HIGH);digitalWrite(pnp12, HIGH); digitalWrite(pnp13,HIGH);digitalWrite(pnp14,HIGH);digitalWrite(pnp15,HIGH);digitalWrite(pnp16, HIGH);digitalWrite(pnp17, HIGH);digitalWrite(pnp18, HIGH); digitalWrite(pnp19,HIGH);digitalWrite(pnp20,HIGH);digitalWrite(pnp21,HIGH);} void npnof(void){ digitalWrite(npn1,LOW);digitalWrite(npn2,LOW);digitalWrite(npn3,LOW);digitalWrite(npn4,LOW);digitalWrite(npn5,LOW);digitalWrite(npn6,LOW);}