Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_NeoPixel.h>
- #include <PciManager.h>
- #include <SoftTimer.h>
- #include <Debouncer.h>
- #define NEOPIXELPIN 13
- #define NUMPIXELS 12
- #define SWITCHPIN 7
- // -- Define method signatures.
- void onPressed();
- void onReleased(unsigned long pressTimespan);
- void changeColor(Task* me);
- Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, NEOPIXELPIN, NEO_GRB + NEO_KHZ800);
- Task changeColorTask(100, changeColor);
- Debouncer debouncer(SWITCHPIN, MODE_CLOSE_ON_PUSH, onPressed, onReleased, true);
- unsigned long ColorArray[16];
- int DIM = 0;
- int NextPixel = 0;
- int NextColor = 0;
- void setup() {
- // Set up built in colors
- ColorArray[0] = strip.Color(0,0,0); // Black
- ColorArray[1] = strip.Color(255,255,255); // White
- ColorArray[2] = strip.Color(255,0,0); // Red
- ColorArray[3] = strip.Color(0,255,0); // Lime
- ColorArray[4] = strip.Color(0,0,255); // Blue
- ColorArray[5] = strip.Color(255,255,0); // Yellow
- ColorArray[6] = strip.Color(0,255,255); // Cyan
- ColorArray[7] = strip.Color(255,0,255); // Magenta
- ColorArray[8] = strip.Color(0,0,0); // Black
- ColorArray[9] = strip.Color(31,31,31); // White
- ColorArray[10] = strip.Color(31,0,0); // Red
- ColorArray[11] = strip.Color(0,31,0); // Lime
- ColorArray[12] = strip.Color(0,0,31); // Blue
- ColorArray[13] = strip.Color(31,31,0); // Yellow
- ColorArray[14] = strip.Color(0,31,31); // Cyan
- ColorArray[15] = strip.Color(31,0,31); // Magenta
- PciManager.registerListener(SWITCHPIN, &debouncer);
- SoftTimer.add(&changeColorTask);
- strip.begin();
- strip.show();
- }
- void onPressed() {
- DIM = 8 - DIM; // Alter between 0 and 8;
- }
- void onReleased(unsigned long pressTimespan) {
- // do nothing on release
- }
- void changeColor(Task* me) {
- if (NextPixel <= NUMPIXELS) {
- strip.setPixelColor(NextPixel, ColorArray[NextColor + DIM]);
- strip.show();
- NextPixel++;
- }
- else {
- NextPixel = 0;
- if (NextColor++ > 6) {
- NextColor = 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement