KVEL

Batman_WS2812

Nov 21st, 2020
800
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.64 KB | None | 0 0
  1. //     _____        _____        _____        _____  
  2. //  __| __  |__  __|   _ |__  __|___  |__  __|_    |__  
  3. // |  |/ /     |\  \  //    ||   ___|    ||    |      |
  4. // |     \     ||\  \//     ||   ___|    ||    |_     |
  5. // |__|\__\  __||_\__/    __||______|  __||______|  __|
  6. //   |_____|      |_____|      |_____|      |_____|    
  7. //
  8. #include <Adafruit_NeoPixel.h>
  9. #ifdef __AVR__
  10. #include <avr/power.h>
  11. #endif
  12.  
  13. #define PIN 1
  14. int Hold = 5000;
  15. Adafruit_NeoPixel strip = Adafruit_NeoPixel(28 , PIN, NEO_GRB + NEO_KHZ800);
  16. void setup() {
  17.   // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  18.   #if defined (__AVR_ATtiny85__)
  19.     if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  20.   #endif
  21.   // End of trinket special code
  22.  
  23.   strip.begin();
  24.   strip.setBrightness(200);
  25.   strip.show(); // Initialize all pixels to 'off'
  26. }
  27.  
  28. void loop() {
  29.    
  30.  
  31.  colorWipe(strip.Color(255, 0, 0), 200);   //Red
  32.  delay (Hold);
  33.  colorWipe(strip.Color(0, 0, 255), 200);  // Blue
  34.  delay (Hold);
  35.  colorWipe(strip.Color(0, 255, 0), 200);  // Green
  36.  delay (Hold);
  37.  
  38.  //knightRider(int r, int g, int b, int rounds, int width, int fade, int wait)
  39.  
  40.     knightRider(255, 0, 0, 5, 3, 5, 80);
  41.     knightRider(0, 0, 255, 5, 3, 5, 80);
  42.     knightRider(0, 255, 0, 5  , 3, 5, 80);
  43. //    knightRider(0, 0, 255, 1, 3, 5, 10);
  44. //    knightRider(255, 255, 255, 2, 2, 2, 50);
  45. //    knightRider(255, 255, 255, 1, 6, 0, 25);
  46. //    knightRider(255, 255, 255, 1, 1, 6, 25);
  47. //    knightRider(10, 156, 40, 1, 7, 5, 20);
  48. //    knightRider(10, 156, 40, 1, 1, 1, 20);
  49. //    knightRider(199, 21, 13, 1, 3, 10, 20);
  50. //    knightRider(39, 121, 28, 2, 15, 10, 20);
  51. //    knightRider(255, 255, 255, 10, 2, 2, 5);
  52. //    knightRider(255, 255, 255, 10, 2, 2, 1);
  53. //    knightRider(255, 255, 255, 1, 2, 2, 100);
  54.  
  55. //    delay(Hold);
  56. }
  57.  
  58. void colorWipe(uint32_t c, uint8_t wait) {
  59.   for(uint16_t i=0; i<strip.numPixels(); i++) {
  60.     strip.setPixelColor(i, c);
  61.     strip.show();
  62.     delay(wait);
  63.   }
  64. }
  65.  
  66. void knightRider(int r, int g, int b, int rounds, int width, int fade, int wait){
  67.   int faktor = 20/(fade*2);
  68.   int r2, g2, b2;
  69.  
  70.   for (int c = 0; c < rounds; c++) {  // legt fest wie viele Runden abgespielt werden sollen
  71.    
  72.     for(int i=0; i<strip.numPixels()+width+fade; i++) {  // gesamten Strip durchlaufen VORWÄRTS
  73.  
  74.       for(int j=0; j < width; j++){ // hier werden die Pixel (ohne den fade) generiert
  75.         strip.setPixelColor(i-j, r, g, b);    
  76.          
  77.         for(int f = fade; f > 0; f--) {  // hier wird das fade generiert und an das Band angehängt
  78.           r2 = (r / 20) * (f * faktor);
  79.           g2 = (g / 20) * (f * faktor);
  80.           b2 = (b / 20) * (f * faktor);
  81.           strip.setPixelColor((i-width-fade+f), r2, g2, b2);
  82.         }
  83.        
  84.         strip.setPixelColor(i-width-fade, 0, 0, 0); // löscht die Pixel nach dem Fade
  85.       }
  86.       strip.show();
  87.       delay(wait);
  88.     }
  89.  
  90.     for(int i = strip.numPixels(); i>0-width-fade-2; i--) {  // gesamten Strip durchlaufen RÜCKWÄRTS (rw)
  91.        for(int j = width; j > 0; j--){ //rw: hier werden die Pixel (ohne den fade) generiert
  92.         strip.setPixelColor(i+j, r, g, b);    
  93.          
  94.         for(int f = fade; f > 0; f--) {  //rw: hier wird das fade generiert und an das Band angehängt
  95.           r2 = (r / 20) * (f * faktor);
  96.           g2 = (g / 20) * (f * faktor);
  97.           b2 = (b / 20) * (f * faktor);
  98.           strip.setPixelColor((i+width+fade-f+1), r2, g2, b2);
  99.         }
  100.        
  101.         strip.setPixelColor(i+width+fade+1, 0, 0, 0); //rw löscht die Pixel nach dem Fade
  102.       }
  103.       strip.show();
  104.       delay(wait);
  105.     }
  106.   }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment