Update extras.ino

This commit is contained in:
Gregg 2022-01-07 06:58:40 -06:00
parent 1b402b5ebc
commit 9d0c56799c
1 changed files with 76 additions and 97 deletions

View File

@ -2,7 +2,80 @@
#include "Pixel.h" #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()<alarmTime)
return;
for(int i=0;i<8;i++)
x[i]=px->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()<alarmTime)
return;
for(int i=0;i<8;i++){
if(i==phase)
x[i]=px->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); Pixel px(21);
Effect1 effect1(&px,5);
Effect2 effect2(&px,100);
void setup() { void setup() {
@ -10,106 +83,12 @@ void setup() {
Serial.flush(); Serial.flush();
delay(1000); // wait for interface to 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"); 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() } // end of setup()
void loop(){ void loop(){
// px.setHSV(0,1.0,0.2,8); effect2.update();
// 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()