Full-white mode
This commit is contained in:
parent
c0ec2a98fb
commit
3fbafaf0ec
16
README.md
16
README.md
|
@ -20,6 +20,14 @@ I used an Adafruit Pro Trinket for mine, which has 150+ lights.
|
||||||
|
|
||||||
Of course, a standard Arduino will work just fine too!
|
Of course, a standard Arduino will work just fine too!
|
||||||
|
|
||||||
|
This was coded to color-correct a specific type of GRB LEDs on wires I got from Amazon.
|
||||||
|
It's coded to match the lights we already have, which are biased toward yellow and amber.
|
||||||
|
|
||||||
|
You may have gotten lights wired RGB, in which case this is going to look very green.
|
||||||
|
It should be just a matter of switching the first two bytes in each color definition
|
||||||
|
to go from GRB to RGB.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Setup
|
Setup
|
||||||
-------
|
-------
|
||||||
|
@ -34,7 +42,7 @@ You can plug the LED strip into the +5v on the power supply;
|
||||||
You can power your microcontroller from the beefier power supply, too,
|
You can power your microcontroller from the beefier power supply, too,
|
||||||
so you don't have to run USB just to power the microcontroller.
|
so you don't have to run USB just to power the microcontroller.
|
||||||
|
|
||||||
This was coded to color-correct a specific type of GRB LEDs on wires I got from Amazon.
|
The code as written wants pin 4 to be connected to ground.
|
||||||
It's coded to match the lights we already have, which are biased toward yellow and amber.
|
When you disconnect it,
|
||||||
Some of the lights are wired differently and the colors are going to be wrong.
|
the whole strand goes white.
|
||||||
Play around, commenting out all but one color, to see if it's right.
|
My family has a tradition of the tree going from colors to white on the morning of the 25th.
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#define PIN 6
|
#define PIN 6
|
||||||
#define NUM_LEDS 150
|
#define NUM_LEDS 150
|
||||||
|
|
||||||
|
#define WHITE_PIN 4
|
||||||
|
|
||||||
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB | NEO_KHZ800);
|
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB | NEO_KHZ800);
|
||||||
|
|
||||||
const uint32_t colors[] = {
|
const uint32_t colors[] = {
|
||||||
|
@ -24,10 +26,11 @@ const int ncolors = sizeof(colors) / sizeof(*colors);
|
||||||
void setup() {
|
void setup() {
|
||||||
strip.begin();
|
strip.begin();
|
||||||
strip.show();
|
strip.show();
|
||||||
|
pinMode(WHITE_PIN, INPUT_PULLUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop_color() {
|
||||||
for (int i = 0; i < 12; i += 1) {
|
for (int i = 0; i < NUM_LEDS/12; i += 1) {
|
||||||
int pos = random(NUM_LEDS);
|
int pos = random(NUM_LEDS);
|
||||||
if (random(100) < 20) {
|
if (random(100) < 20) {
|
||||||
int color = random(ncolors);
|
int color = random(ncolors);
|
||||||
|
@ -39,3 +42,24 @@ void loop() {
|
||||||
strip.show();
|
strip.show();
|
||||||
delay(240);
|
delay(240);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void loop_white() {
|
||||||
|
for (int i = 0; i < NUM_LEDS/12; i += 1) {
|
||||||
|
int pos = random(NUM_LEDS);
|
||||||
|
if (random(100) < 5) {
|
||||||
|
strip.setPixelColor(pos, 0x0);
|
||||||
|
} else {
|
||||||
|
strip.setPixelColor(pos, 0x99ffaa);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strip.show();
|
||||||
|
delay(24);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
if (digitalRead(WHITE_PIN)) {
|
||||||
|
loop_white();
|
||||||
|
} else {
|
||||||
|
loop_color();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue