|
@@ -130,70 +130,68 @@ class NeoPatterns : public Adafruit_NeoP
|
|
|
Increment();
|
|
|
}
|
|
|
|
|
|
void DoubleColorWipe(uint32_t color, uint16_t interval) {
|
|
|
ActivePattern = DOUBLE_COLOR_WIPE;
|
|
|
Interval = interval;
|
|
|
TotalSteps = numPixels() / 2;
|
|
|
PixelColor = color;
|
|
|
Index = 0;
|
|
|
}
|
|
|
|
|
|
void DoubleColorWipeUpdate() {
|
|
|
setPixelColor(Index, PixelColor);
|
|
|
setPixelColor(numPixels() - 1 - Index, PixelColor);
|
|
|
DoubleSet(Index, PixelColor);
|
|
|
Increment();
|
|
|
}
|
|
|
|
|
|
void Scanner(uint32_t color, uint16_t interval) {
|
|
|
ActivePattern = SCANNER;
|
|
|
Interval = interval;
|
|
|
TotalSteps = (numPixels() - 1) * 2;
|
|
|
PixelColor = color;
|
|
|
Index = 0;
|
|
|
}
|
|
|
|
|
|
void ScannerUpdate() {
|
|
|
for (int i = 0; i < numPixels(); i++) {
|
|
|
if (i == Index) {
|
|
|
setPixelColor(i, PixelColor);
|
|
|
}
|
|
|
else if (i == TotalSteps - Index) {
|
|
|
setPixelColor(i, PixelColor);
|
|
|
uint32_t c;
|
|
|
if (i == Index || i == TotalSteps - Index) {
|
|
|
c = PixelColor;
|
|
|
}
|
|
|
else {
|
|
|
setPixelColor(i, DimColor(getPixelColor(i)));
|
|
|
c = DimColor(getPixelColor(i));
|
|
|
}
|
|
|
setPixelColor(i, c);
|
|
|
}
|
|
|
Increment();
|
|
|
}
|
|
|
|
|
|
void DoubleScanner(uint32_t color, uint16_t interval) {
|
|
|
ActivePattern = DOUBLE_SCANNER;
|
|
|
Interval = interval;
|
|
|
TotalSteps = (numPixels() / 2);
|
|
|
PixelColor = color;
|
|
|
Index = 0;
|
|
|
}
|
|
|
|
|
|
void DoubleScannerUpdate() {
|
|
|
for (int i = 0; i < numPixels() / 2; i++) {
|
|
|
uint32_t c;
|
|
|
if (i == Index) {
|
|
|
setPixelColor(i, PixelColor); // First Eye
|
|
|
setPixelColor(numPixels() - 1 - i, PixelColor); // Second Eye
|
|
|
c = PixelColor;
|
|
|
}
|
|
|
else {
|
|
|
setPixelColor(i, DimColor(getPixelColor(i)));
|
|
|
setPixelColor(numPixels() - 1 - i, DimColor(getPixelColor(i)));
|
|
|
c = DimColor(getPixelColor(i));
|
|
|
}
|
|
|
DoubleSet(i, c);
|
|
|
}
|
|
|
Increment();
|
|
|
}
|
|
|
|
|
|
void Random(uint32_t color, uint16_t steps, uint16_t interval) {
|
|
|
ActivePattern = RANDOM;
|
|
|
Interval = interval;
|
|
|
TotalSteps = steps;
|
|
|
PixelColor = color;
|
|
|
Index = 0;
|
|
|
}
|
|
|
|
|
@@ -202,27 +200,26 @@ class NeoPatterns : public Adafruit_NeoP
|
|
|
Increment();
|
|
|
}
|
|
|
|
|
|
void DoubleRandom(uint32_t color, uint16_t steps, uint16_t interval) {
|
|
|
ActivePattern = DOUBLE_RANDOM;
|
|
|
Interval = interval;
|
|
|
TotalSteps = steps;
|
|
|
PixelColor = color;
|
|
|
Index = 0;
|
|
|
}
|
|
|
|
|
|
void DoubleRandomUpdate() {
|
|
|
int i = random(numPixels() / 2);
|
|
|
setPixelColor(i, PixelColor);
|
|
|
setPixelColor(numPixels() - 1 - i, PixelColor);
|
|
|
int i = random(numPixels() / 2); // this saves 4 bytes instead of calling random in the function call of DoubleSet
|
|
|
DoubleSet(i, PixelColor);
|
|
|
Increment();
|
|
|
}
|
|
|
|
|
|
void Blink(uint32_t color, uint16_t steps, uint16_t interval) {
|
|
|
ActivePattern = BLINK;
|
|
|
Interval = interval;
|
|
|
if (steps % 2 != 0) {
|
|
|
steps++;
|
|
|
}
|
|
|
TotalSteps = steps;
|
|
|
PixelColor = color;
|
|
|
Index = 0;
|
|
@@ -269,24 +266,29 @@ class NeoPatterns : public Adafruit_NeoP
|
|
|
}
|
|
|
else {
|
|
|
WheelPos -= 170;
|
|
|
return Color(WheelPos * 3, 255 - WheelPos * 3, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void ColorSet(uint32_t color) {
|
|
|
for (int i = 0; i < numPixels(); i++) {
|
|
|
setPixelColor(i, color);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void DoubleSet(uint16_t i, uint32_t color) {
|
|
|
setPixelColor(i, color);
|
|
|
setPixelColor(numPixels() - 1 - i, color);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
void RingsComplete();
|
|
|
|
|
|
NeoPatterns Rings(32, PIN, NEO_GRB + NEO_KHZ800, &RingsComplete);
|
|
|
uint8_t mode = 0;
|
|
|
uint32_t prev_time;
|
|
|
|
|
|
void setup() {
|
|
|
#ifdef __AVR_ATtiny85__
|
|
|
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
|
|
|
#endif
|