Advertisement
TopHatRaver

Untitled

Jun 12th, 2016
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.75 KB | None | 0 0
  1. //Edward Finkenbinder's Tri-State Totem code with animations from Tweaking4All.com
  2.  
  3. #include <Adafruit_DotStar.h>
  4.  
  5. //---Strip Setup
  6. #define NUMPIXELS 26
  7. #define DATAPIN 3
  8. #define CLOCKPIN 2
  9.  
  10. Adafruit_DotStar strip = Adafruit_DotStar(
  11.   NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BRG);
  12. //---Button Setup
  13. #define BUTTONPIN 5
  14. bool oldState = HIGH;
  15. int showType = 0;
  16.  
  17. void setup() {
  18.   pinMode(BUTTONPIN, INPUT_PULLUP);
  19.   strip.begin();
  20.   strip.show();
  21. }
  22.  
  23. //---Main Loop---
  24. //---Button Function
  25. void loop() {  
  26. bool newState = digitalRead(BUTTONPIN);
  27.   if (newState == LOW && oldState == HIGH) {
  28.     delay(20);
  29.     newState = digitalRead(BUTTONPIN);
  30.     if (newState == LOW) {
  31.       showType++;
  32.       if (showType > 7)
  33.         showType=0;
  34.       startShow(showType);
  35.     }
  36.   }
  37.   oldState = newState;
  38. }
  39. //---Animation Selection
  40. void startShow(int i) {
  41.   switch(i){
  42.     case 0: colorWipe(0xff,0xff,0xff, 50);    //Animated All On
  43.             break;
  44.     case 1: Twinkle(0xff, 0, 0, 10, 100, false);
  45.             break;
  46.     case 2: Strobe(0xff, 0xff, 0xff, 10, 50, 1000);
  47.             break;
  48.     case 3: Sparkle(0xff, 0xff, 0xff, 0);
  49.             break;
  50.     case 4: FadeInOut(0xff, 0x77, 0x00);
  51.             break;
  52.     case 5: colorWipe(0xff,0xff,0xff, 50);  
  53.             colorWipe(0x00,0x00,0x00, 50);
  54.             break;
  55.     case 6: SnowSparkle(0x10, 0x10, 0x10, 20, random(100,1000));
  56.             break;
  57.     case 7: colorWipe(0x00,0x00,0x00, 50);
  58.   }}
  59.  
  60. //---Animation Code
  61. //---Color Wipe
  62. void colorWipe(byte red, byte green, byte blue, int SpeedDelay) {  
  63.   for(uint16_t i=0; i<NUMPIXELS; i++) {
  64.     setPixel(i, red, green, blue);
  65.     showStrip();
  66.     delay(SpeedDelay);
  67.   }
  68. }
  69.  
  70. //---Twinkle
  71. void Twinkle(byte red, byte green, byte blue, int Count, int SpeedDelay, boolean OnlyOne) {  
  72.   setAll(0,0,0);    
  73.  
  74.   for (int i=0; i<Count; i++) {
  75.     setPixel(random(NUMPIXELS),red,green,blue);
  76.     showStrip();
  77.     delay(SpeedDelay);
  78.     if(OnlyOne) {
  79.       setAll(0,0,0);
  80.     }
  81.   }
  82.   delay(SpeedDelay);
  83. }
  84. //---Strobe
  85. void Strobe(byte red, byte green, byte blue, int StrobeCount, int FlashDelay, int EndPause){
  86.   for(int j = 0; j < StrobeCount; j++) {
  87.     setAll(red,green,blue);
  88.     showStrip();
  89.     delay(FlashDelay);
  90.     setAll(0,0,0);
  91.     showStrip();
  92.     delay(FlashDelay);
  93.   }
  94.   delay(EndPause);
  95. }
  96.  
  97. //---Sparkle
  98. void Sparkle(byte red, byte green, byte blue, int SpeedDelay) {
  99.   int Pixel = random(NUMPIXELS);
  100.   setPixel(Pixel,red,green,blue);
  101.   showStrip();
  102.   delay(SpeedDelay);
  103.   setPixel(Pixel,0,0,0);
  104. }
  105.  
  106. //---FadeInOut
  107. void FadeInOut(byte red, byte green, byte blue){  
  108.   float r, g, b;        
  109.  
  110.   for(int k = 0; k < 256; k=k+1) {    
  111.     r = (k/256.0)*red;    
  112.     g = (k/256.0)*green;    
  113.     b = (k/256.0)*blue;    
  114.     setAll(r,g,b);    
  115.     showStrip();  
  116.   }        
  117.  
  118.   for(int k = 255; k >= 0; k=k-2) {    
  119.     r = (k/256.0)*red;    
  120.     g = (k/256.0)*green;    
  121.     b = (k/256.0)*blue;    
  122.     setAll(r,g,b);    
  123.     showStrip();  
  124.     }
  125.   }
  126.  
  127. //---SnowSparkle
  128.   void SnowSparkle(byte red, byte green, byte blue, int SparkleDelay, int SpeedDelay) {  
  129.     setAll(red,green,blue);    
  130.    
  131.     int Pixel = random(NUMPIXELS);  
  132.     setPixel(Pixel,0xff,0xff,0xff);  
  133.     showStrip();  
  134.     delay(SparkleDelay);  
  135.     setPixel(Pixel,red,green,blue);  
  136.     showStrip();  
  137.     delay(SpeedDelay);
  138.   }
  139.  
  140.  
  141. //---Tweaking4all required code
  142.   void showStrip() {      
  143.   strip.show();  
  144.   }
  145.  
  146.   void setPixel(int Pixel, byte red, byte green, byte blue) {      
  147.     strip.setPixelColor(Pixel, strip.Color(red, green, blue));  
  148.   }
  149.  
  150.   void setAll(byte red, byte green, byte blue) {  
  151.     for(int i = 0; i < NUMPIXELS; i++ ) {    
  152.       setPixel(i, red, green, blue);  
  153.    }  
  154.       showStrip();
  155.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement