Guest User

Untitled

a guest
Oct 17th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2.  
  3. const int switchPin = 4;
  4. int switchState = 0;
  5. int PIN = 6;
  6. int totalLEDs = 30;
  7. int ledFadeTime = 3;
  8.  
  9. Adafruit_NeoPixel strip = Adafruit_NeoPixel(totalLEDs, PIN, NEO_GRB + NEO_KHZ800);
  10.  
  11. void setup() {
  12. strip.begin();
  13. strip.show(); // Initialize all pixels to 'off'
  14. int switchState = 0;
  15. pinMode(switchPin, INPUT);
  16. }
  17.  
  18. void loop() {
  19. switchState = digitalRead(switchPin);
  20. if(switchState == HIGH){
  21. strip.setBrightness(20);
  22. strip.show();
  23. theaterChaseRainbow(40);
  24. }
  25. else{
  26. strip.setBrightness(255);
  27. strip.show();
  28. setAll(10,0,0);
  29. delay(120);
  30. setAll(0,0,0);
  31. delay(120);
  32. setAll(10,0,0);
  33. delay(120);
  34. setAll(0,0,0);
  35. delay(120);
  36. setAll(60,0,0);
  37. rgbFadeInAndOut(60, 0, 0, ledFadeTime);
  38. delay(120);
  39. }
  40. }
  41.  
  42. void rgbFadeInAndOut(uint8_t red, uint8_t green, uint8_t blue, uint8_t wait) {
  43. for(uint8_t b=255; b > 5; b--) {
  44. for(uint8_t i = 0; i < strip.numPixels(); i++) {
  45. strip.setPixelColor(i, red * b/255, green * b/255, blue * b/255);
  46. }
  47. strip.show();
  48. delay(wait);
  49. };
  50. };
  51. void setPixel(int Pixel, byte red, byte green, byte blue) {
  52. #ifdef ADAFRUIT_NEOPIXEL_H
  53. // NeoPixel
  54. strip.setPixelColor(Pixel, strip.Color(red, green, blue));
  55. #endif
  56. #ifndef ADAFRUIT_NEOPIXEL_H
  57. // FastLED
  58. leds[Pixel].r = red;
  59. leds[Pixel].g = green;
  60. leds[Pixel].b = blue;
  61. #endif
  62. }
  63.  
  64. void setAll(byte red, byte green, byte blue) {
  65. for(int i = 0; i < totalLEDs; i++ ) {
  66. setPixel(i, red, green, blue);
  67. }
  68. strip.show();
  69. }
  70.  
  71. void theaterChaseRainbow(uint8_t wait) {
  72. for (int j=0; j < 256; j++) { // cycle all 256 colors in the wheel
  73. for (int q=0; q < 3; q++) {
  74. for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
  75. strip.setPixelColor(i+q, Wheel( (i+j) % 255)); //turn every third pixel on
  76. }
  77. strip.show();
  78.  
  79. delay(wait);
  80.  
  81. for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
  82. strip.setPixelColor(i+q, 0); //turn every third pixel off
  83. }
  84. }
  85. }
  86. }
  87.  
  88. uint32_t Wheel(byte WheelPos) {
  89. WheelPos = 255 - WheelPos;
  90. if(WheelPos < 85) {
  91. return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  92. }
  93. if(WheelPos < 170) {
  94. WheelPos -= 85;
  95. return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  96. }
  97. WheelPos -= 170;
  98. return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  99. }
Add Comment
Please, Sign In to add comment