# https://sider.ai/share/e04a80d5d85ffb9350ffc4f3ac68a2d4 for explaination
#include <Adafruit_NeoPixel.h>
#define PIN 3
#define NUMPIXELS 256 // 16x16 matrix
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
pixels.clear();
pixels.show();
}
void loop() {
rainbow(10000);
}
void rainbow(unsigned long duration) {
uint16_t i, j;
for(j=0; j<256; j++) {
for(i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, Wheel((i+j) & 255));
}
pixels.show();
delay(duration / 256);
}
}
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return pixels.Color(255 - WheelPos * 2, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return pixels.Color(0, WheelPos * 2, 255 - WheelPos * 3);
}
WheelPos -= 170;
return pixels.Color(WheelPos * 2, 255 - WheelPos * 3, 0);
}
FPS: 0
Power: 0.00W
Power: 0.00W