Skip to content

Instantly share code, notes, and snippets.

@yyolk
Created June 23, 2013 00:46
Show Gist options
  • Save yyolk/5843280 to your computer and use it in GitHub Desktop.
Save yyolk/5843280 to your computer and use it in GitHub Desktop.
primary demo
#include "SPI.h"
#include "Adafruit_WS2801.h"
int dataPin = 11; // Yellow wire on Adafruit Pixels
int clockPin = 13; // Green wire on Adafruit Pixels
int prgb[3];
int rgb[3];
Adafruit_WS2801 strip = Adafruit_WS2801(109, dataPin, clockPin);
void setup(){
strip.begin();
strip.show();
setRGB();
}
void clear(){
for(int i = 0; i < strip.numPixels() ; i++){
for (int j = 0; j < 256; j+=51){
strip.setPixelColor(strip.numPixels()-i, 255 - j, 255 - j, 255 - j);
strip.show();
}
}
}
void rpixel(int index, int r, int g, int b){
strip.setPixelColor(index, b, g, r);
}
void setpRGB(){
for(int i=0; i<3; i++){
prgb[i] = rgb[i];
}
}
void setRGB(){
for(int i=0; i<3; i++){
rgb[i] = random(0, 255);
}
}
void loop(){
for(int i=0; i < strip.numPixels(); i++) {
rpixel(i, rgb[2], rgb[1], rgb[0]);
strip.show();
}
setpRGB();
setRGB();
for(int i=0; i<strip.numPixels(); i++){
// lerp(prgb[2]-rgb[2], 0, 255)
// rpixel(i, prgb[2]-rgb[2],prgb[1]-rgb[1],prgb[0]-rgb[0]);
rpixel(i, lerp(prgb[2]/rgb[2], 0, 255), lerp(prgb[1]/rgb[1], 0, 255), lerp(prgb[0]/rgb[0], 0, 255));
}
strip.show();
}
int lerp(int value, int low, int high) {
return value * (high - low) + low;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment