Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Edward Finkenbinder's Tri-State Totem code with animations from Tweaking4All.com
- #include <Adafruit_DotStar.h>
- //---Strip Setup
- #define NUMPIXELS 26
- #define DATAPIN 3
- #define CLOCKPIN 2
- Adafruit_DotStar strip = Adafruit_DotStar(
- NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BRG);
- //---Button Setup
- #define BUTTONPIN 5
- bool oldState = HIGH;
- int showType = 0;
- void setup() {
- pinMode(BUTTONPIN, INPUT_PULLUP);
- strip.begin();
- strip.show();
- }
- //---Main Loop---
- //---Button Function
- void loop() {
- bool newState = digitalRead(BUTTONPIN);
- if (newState == LOW && oldState == HIGH) {
- delay(20);
- newState = digitalRead(BUTTONPIN);
- if (newState == LOW) {
- showType++;
- if (showType > 7)
- showType=0;
- startShow(showType);
- }
- }
- oldState = newState;
- }
- //---Animation Selection
- void startShow(int i) {
- switch(i){
- case 0: colorWipe(0xff,0xff,0xff, 50); //Animated All On
- break;
- case 1: Twinkle(0xff, 0, 0, 10, 100, false);
- break;
- case 2: Strobe(0xff, 0xff, 0xff, 10, 50, 1000);
- break;
- case 3: Sparkle(0xff, 0xff, 0xff, 0);
- break;
- case 4: FadeInOut(0xff, 0x77, 0x00);
- break;
- case 5: colorWipe(0xff,0xff,0xff, 50);
- colorWipe(0x00,0x00,0x00, 50);
- break;
- case 6: SnowSparkle(0x10, 0x10, 0x10, 20, random(100,1000));
- break;
- case 7: colorWipe(0x00,0x00,0x00, 50);
- }}
- //---Animation Code
- //---Color Wipe
- void colorWipe(byte red, byte green, byte blue, int SpeedDelay) {
- for(uint16_t i=0; i<NUMPIXELS; i++) {
- setPixel(i, red, green, blue);
- showStrip();
- delay(SpeedDelay);
- }
- }
- //---Twinkle
- void Twinkle(byte red, byte green, byte blue, int Count, int SpeedDelay, boolean OnlyOne) {
- setAll(0,0,0);
- for (int i=0; i<Count; i++) {
- setPixel(random(NUMPIXELS),red,green,blue);
- showStrip();
- delay(SpeedDelay);
- if(OnlyOne) {
- setAll(0,0,0);
- }
- }
- delay(SpeedDelay);
- }
- //---Strobe
- void Strobe(byte red, byte green, byte blue, int StrobeCount, int FlashDelay, int EndPause){
- for(int j = 0; j < StrobeCount; j++) {
- setAll(red,green,blue);
- showStrip();
- delay(FlashDelay);
- setAll(0,0,0);
- showStrip();
- delay(FlashDelay);
- }
- delay(EndPause);
- }
- //---Sparkle
- void Sparkle(byte red, byte green, byte blue, int SpeedDelay) {
- int Pixel = random(NUMPIXELS);
- setPixel(Pixel,red,green,blue);
- showStrip();
- delay(SpeedDelay);
- setPixel(Pixel,0,0,0);
- }
- //---FadeInOut
- void FadeInOut(byte red, byte green, byte blue){
- float r, g, b;
- for(int k = 0; k < 256; k=k+1) {
- r = (k/256.0)*red;
- g = (k/256.0)*green;
- b = (k/256.0)*blue;
- setAll(r,g,b);
- showStrip();
- }
- for(int k = 255; k >= 0; k=k-2) {
- r = (k/256.0)*red;
- g = (k/256.0)*green;
- b = (k/256.0)*blue;
- setAll(r,g,b);
- showStrip();
- }
- }
- //---SnowSparkle
- void SnowSparkle(byte red, byte green, byte blue, int SparkleDelay, int SpeedDelay) {
- setAll(red,green,blue);
- int Pixel = random(NUMPIXELS);
- setPixel(Pixel,0xff,0xff,0xff);
- showStrip();
- delay(SparkleDelay);
- setPixel(Pixel,red,green,blue);
- showStrip();
- delay(SpeedDelay);
- }
- //---Tweaking4all required code
- void showStrip() {
- strip.show();
- }
- void setPixel(int Pixel, byte red, byte green, byte blue) {
- strip.setPixelColor(Pixel, strip.Color(red, green, blue));
- }
- void setAll(byte red, byte green, byte blue) {
- for(int i = 0; i < NUMPIXELS; i++ ) {
- setPixel(i, red, green, blue);
- }
- showStrip();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement