LED Strip Pattern Collection: Difference between revisions
Jump to navigation
Jump to search
Created page with "Note: Some of these may be written specifically for octows2811, neopixel or fastSPI, but it's usually easy to port between them (change the show and set color functions). ===..." |
No edit summary |
||
| Line 30: | Line 30: | ||
delay(wait); | delay(wait); | ||
} | } | ||
</pre> | |||
=== Simple Wave === | |||
<pre> | |||
// very simple wave: velocity, cycles,delay between frames | |||
// simpleWave(0.03,5,10); | |||
void simpleWave(float rate,int cycles, int wait) { | |||
float pos=0.0; | |||
// cycle through x times | |||
for(int x=0; x<(strip.numPixels()*cycles); x++) | |||
{ | |||
pos = pos+rate; | |||
for(int i=0; i<strip.numPixels(); i++) { | |||
// sine wave, 3 offset waves make a rainbow! | |||
float level = sin(i+pos) * 127 + 128; | |||
// set color level | |||
strip.setPixelColor(i,(int)level,0,0); | |||
} | |||
strip.show(); | |||
delay(wait); | |||
} | |||
} | |||
</pre> | </pre> | ||
Revision as of 19:56, 20 July 2013
Note: Some of these may be written specifically for octows2811, neopixel or fastSPI, but it's usually easy to port between them (change the show and set color functions).
Random Twinkle
// number, twinkle color, background color, delay
// twinkleRand(5,strip.Color(255,255,255),strip.Color(255, 0, 100),90);
// twinkle random number of pixels
void twinkleRand(int num,uint32_t c,uint32_t bg,int wait) {
// set background
stripSet(bg,0);
// for each num
for (int i=0; i<num; i++) {
strip.setPixelColor(random(strip.numPixels()),c);
}
strip.show();
delay(wait);
}
Set All Pixels Quickly
// quickly set the entire strip a color
void stripSet(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
}
// move the show outside the loop
strip.show();
delay(wait);
}
Simple Wave
// very simple wave: velocity, cycles,delay between frames
// simpleWave(0.03,5,10);
void simpleWave(float rate,int cycles, int wait) {
float pos=0.0;
// cycle through x times
for(int x=0; x<(strip.numPixels()*cycles); x++)
{
pos = pos+rate;
for(int i=0; i<strip.numPixels(); i++) {
// sine wave, 3 offset waves make a rainbow!
float level = sin(i+pos) * 127 + 128;
// set color level
strip.setPixelColor(i,(int)level,0,0);
}
strip.show();
delay(wait);
}
}