diff --git a/src/extras/extras.ino b/src/extras/extras.ino index 476691d..832396e 100644 --- a/src/extras/extras.ino +++ b/src/extras/extras.ino @@ -2,7 +2,80 @@ #include "Pixel.h" +struct Effect1 { + + Pixel *px; + int H=0; + color_t x[8]; + uint32_t alarmTime=0; + uint32_t speed; + + Effect1(Pixel *px, uint32_t speed=20){ + this->px=px; + this->speed=speed; + } + + void update(){ + if(millis()getColorHSV(H,i*3+79,i*2+5); + + px->setColors(x,8); + H=(H+1)%360; + + alarmTime=millis()+speed; + } +}; + +struct Effect2 { + + Pixel *px; + int phase=0; + int dir=1; + int H=0; + color_t x[8]; + uint32_t alarmTime=0; + uint32_t speed; + + Effect2(Pixel *px, uint32_t speed=20){ + this->px=px; + this->speed=speed; + } + + void update(){ + if(millis()getColorHSV(H,100,10); + else if(i==7-phase) + x[i]=px->getColorHSV(H+180,100,10); + else + x[i]=0; + } + + px->setColors(x,8); + phase=(phase+dir)%8; + + if(phase==0){ + dir=1; + H=(H+10)%360; + } + else if(phase==7){ + dir=-1; + H=(H+10)%360; + } + + alarmTime=millis()+speed; + } +}; + Pixel px(21); +Effect1 effect1(&px,5); +Effect2 effect2(&px,100); void setup() { @@ -10,106 +83,12 @@ void setup() { Serial.flush(); delay(1000); // wait for interface to flush - Serial.println("\n\nHomeSpan Pixel Example\n\n"); - + Serial.println("\n\nHomeSpan Pixel Example\n"); Serial.printf("PX on Pin=%d check: %s\n",px.getPin(),px?"OKAY":"BAD"); - - int H=0; - color_t x[8]; - int s; - - while(1){ - - for(int i=0;i<8;i++) - x[i]=px.getColorHSV(H,i*3+79,i*2+5); - - px.setColors(x,8); - delay(20); - H=H+1; - if(H>=360) - H=0; - - s++; - if(s>8) - s=0; - } } // end of setup() void loop(){ -// px.setHSV(0,1.0,0.2,8); -// delay(1000); -// px.setHSV(120,1.0,0.2,4); -// delay(1000); -// px.setHSV(240,1.0,0.2,2); -// delay(1000); - - color_t RED=px.getColorRGB(50,0,0); - - color_t x0[8]={0,0,0,0,0,0,0,0}; - - color_t x1[8]={RED,RED,RED,RED,RED,RED,RED,RED}; - color_t x2[8]={0,0,0,0,0,0,RED,RED}; - color_t x3[8]={0,0,0,0,0,RED,0,0}; - color_t x4[8]={0,0,0,0,RED,0,0,0}; - color_t x5[8]={0,0,0,0,0,RED,0,0}; - color_t x6[8]={0,0,0,0,0,0,RED,RED}; - color_t x7[8]={RED,RED,RED,RED,RED,RED,RED,RED}; - - color_t x8[8]={RED,RED,RED,RED,RED,RED,RED,RED}; - color_t x9[8]={RED,0,0,0,RED,0,0,RED}; - color_t x10[8]={RED,0,0,0,RED,0,0,RED}; - color_t x11[8]={RED,0,0,0,RED,0,0,RED}; - color_t x12[8]={RED,0,0,0,0,0,0,RED}; - color_t x13[8]={RED,0,0,0,0,0,0,RED}; - color_t x14[8]={RED,0,0,0,0,0,0,RED}; - - - uint32_t d=2; - - while(1){ - px.setColors(x1,8); - delay(d); - px.setColors(x2,8); - delay(d); - px.setColors(x3,8); - delay(d); - px.setColors(x4,8); - delay(d); - px.setColors(x5,8); - delay(d); - px.setColors(x6,8); - delay(d); - px.setColors(x7,8); - delay(d); - px.setColors(x0,8); - delay(d); - px.setColors(x8,8); - delay(d); - px.setColors(x9,8); - delay(d); - px.setColors(x10,8); - delay(d); - px.setColors(x11,8); - delay(d); - px.setColors(x12,8); - delay(d); - px.setColors(x13,8); - delay(d); - px.setColors(x14,8); - delay(d); - px.setColors(x0,8); - delay(d); - } - -// x[0]=Pixel::getColorHSV(0,1,0.2); -// x[1]=px.getColorHSV(0,0.7,0.2); -// px.setColors(x,2); -// delay(1000); -// x[0]=px.getColorHSV(0,0.7,0.2); -// x[1]=px.getColorHSV(0,1,0.2); -// px.setColors(x,2); -// delay(1000); - -} // end of loop() + effect2.update(); +}