diff --git a/NeoPatterns.cpp b/NeoPatterns.cpp index 9973311..6a6ded8 100644 --- a/NeoPatterns.cpp +++ b/NeoPatterns.cpp @@ -499,27 +499,27 @@ void NeoPatterns::Radar(float radarspeed,float radarthickness, uint8_t interval) void NeoPatterns::RadarUpdate() { Radarposition += Radarspeed; - while (Radarposition>=32){ - Radarposition-=32; + while (Radarposition>=20){ + Radarposition-=20; } - while (Radarposition<=-32){ - Radarposition+=32; + while (Radarposition<=-20){ + Radarposition+=20; } - for (int i=0;i<32;i++){ + for (int i=0;i<20;i++){ uint32_t c= Color(0,0,0); float angulardistance; if (Radarspeed>0){ angulardistance=Radarposition-i; if (angulardistance<0){ - angulardistance+=32; + angulardistance+=20; } } if (angulardistance<=Radarfadelength){ uint8_t _brightness=(Radarfadelength-angulardistance)*255/Radarfadelength; - c= Color (int( pow( (_brightness/255.0),2)*255.0), _brightness ,int(pow( (_brightness/255.0),2)*200.0) ); + c= Color (int( pow( (_brightness/255.0),2)*255.0), _brightness ,int(pow( (_brightness/255.0),2)*150.0) ); } colorCircleSegment(i, c); @@ -528,11 +528,15 @@ void NeoPatterns::RadarUpdate() Radardotbrightness=255; } if (Radardotbrightness>10){ - Radardotbrightness-=Radardotfadespeed; + if (Radardotbrightness>=Radardotfadespeed){ + Radardotbrightness-=Radardotfadespeed; + }else{ + Radardotbrightness=0; + } colorCircleSegment(Radardotposition, Color (Radardotbrightness,0,0)); }else{ if (random(100)==0){ - Radardotposition=random(0,32); //set new position + Radardotposition=random(0,20); //set new position } } @@ -687,7 +691,7 @@ void NeoPatterns::setupboxs() { } void NeoPatterns::colorCircleSegment(uint8_t wheelid, uint32_t c){ //color a wheel segment - for (int i=0;i<4;i++) { + for (int i=0;i<6;i++) { setPixelColor(boxcircle[wheelid][i], c); } show(); diff --git a/NeoPatterns.h b/NeoPatterns.h index b902f17..16ba39f 100644 --- a/NeoPatterns.h +++ b/NeoPatterns.h @@ -34,7 +34,7 @@ class NeoPatterns : public Adafruit_NeoPixel void SmoothUpdate(); void Plasma(float phase = 0, float phaseIncrement = 0.08, float colorStretch = 0.11, uint8_t interval = 60); // 0.08 and 0.11 // 0.03 und 0.3 void PlasmaUpdate(); - void Radar(float radarspeed = 1,float radarthickness = 1, uint8_t interval = 50); + void Radar(float radarspeed = 0.5,float radarthickness = 1, uint8_t interval = 50); void RadarUpdate(); void SetColor1(uint32_t color); @@ -50,7 +50,30 @@ class NeoPatterns : public Adafruit_NeoPixel }; struct box boxs[25]; - uint8_t boxcircle[32][4]={ + + uint8_t boxcircle[20][6]={ + {0,1,2,2,2,2}, + {3,4,5,5,5,5}, + {6,7,8,8,8,8}, + {9,10,11,11,11,11}, + {12,13,14,14,14,14}, + {15,16,17,17,17,17}, + {18,19,20,27,28,29}, + {21,22,23,27,28,29}, + {24,25,26,27,28,29}, + {32,33,34,30,31,31}, + {37,38,39,35,36,36}, + {43,44,45,40,41,42}, + {46,47,48,40,41,42}, + {49,50,51,40,41,42}, + {52,53,54,54,54,54}, + {55,56,57,57,57,57}, + {58,59,60,60,60,60}, + {61,62,63,63,63,63}, + {64,65,66,66,66,66}, + {67,68,69,69,69,69}, + }; + /*uint8_t boxcircle[32][4]={ {0,0,0,0}, //0 {1,2,2,2}, {3,4,4,4}, @@ -83,7 +106,7 @@ class NeoPatterns : public Adafruit_NeoPixel {65,66,66,66}, {67,68,68,68}, {69,69,69,69} //31 - }; + };*/ void setupboxs(); void colorBox(uint8_t boxid, uint32_t c);