LEDPROJECT69420

Untitled

Aug 15th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.51 KB | None | 0 0
  1. static int activePreset = -1;
  2.  
  3. #include <FastLED.h>  //add
  4. #include <IRremote.h>  
  5.  
  6.  
  7. #define LED_TYPE    WS2812B
  8. #define COLOR_ORDER GRB
  9. #define BRIGHTNESS  255
  10.  
  11.  
  12. #define NUM_LEDS 899
  13. #define DATA_PIN 5
  14.  
  15. const int RECV_PIN = 3;
  16. IRrecv irrecv(RECV_PIN);
  17. decode_results results;
  18. unsigned long key_value = 0;
  19. CRGB leds[NUM_LEDS]; //Add
  20.  
  21. void setup(){
  22.   Serial.begin(9600);
  23.   irrecv.enableIRIn();
  24.   irrecv.blink13(true);
  25.   FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS)
  26.     .setCorrection(TypicalLEDStrip)
  27.     .setDither(BRIGHTNESS < 255);
  28.  
  29.   // set master brightness control
  30.   FastLED.setBrightness(BRIGHTNESS);
  31. }
  32.  
  33. /////////////////////////////////// Setting up various zones
  34.  
  35.  
  36.  
  37. void zone1(int red, int green, int blue){
  38.     for (int i=0;i<=25;i++){
  39.         leds[i].r = red;
  40.         leds[i].g = green;
  41.         leds[i].b = blue;
  42.     }
  43. }
  44.  
  45. void zone2(int red, int green, int blue){
  46.     for (int i=26;i<=56;i++){
  47.         leds[i].r = red;
  48.         leds[i].g = green;
  49.         leds[i].b = blue;
  50.     }
  51. }
  52.  
  53. void zone3(int red, int green, int blue){
  54.     for (int i=57;i<=197;i++){
  55.         leds[i].r = red;
  56.         leds[i].g = green;
  57.         leds[i].b = blue;
  58.     }
  59. }
  60.  
  61. void zone4(int red, int green, int blue){
  62.     for (int i=198;i<=407;i++){
  63.         leds[i].r = red;
  64.         leds[i].g = green;
  65.         leds[i].b = blue;
  66.     }
  67. }
  68.  
  69. void zone5(int red, int green, int blue){
  70.     for (int i=408;i<=599;i++){
  71.         leds[i].r = red;
  72.         leds[i].g = green;
  73.         leds[i].b = blue;
  74.     }
  75. }
  76.  
  77. void zone6(int red, int green, int blue){
  78.     for (int i=600;i<=707;i++){
  79.         leds[i].r = red;
  80.         leds[i].g = green;
  81.         leds[i].b = blue;
  82.     }
  83. }
  84.  
  85.  
  86. void zone7(int red, int green, int blue){
  87.     for (int i=708;i<=899;i++){
  88.         leds[i].r = red;
  89.         leds[i].g = green;
  90.         leds[i].b = blue;
  91.     }
  92. }
  93. ////////////////////////////////////////////////////////////////////// What the buttons do!!
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100. void showCurrentPreset()
  101. {
  102.    switch (activePreset)
  103.    {
  104.    case 0: showProgram0(); break;
  105.    case 1: showProgram1(); break;
  106.    //... other programs here
  107.    default: showDefault(); break;
  108.    }
  109. }
  110.  
  111. void showProgram0()
  112. {
  113.    // paste the inside of your infinite loop from preset0() here
  114.    static uint16_t sPseudotime = 0;
  115.   static uint16_t sLastMillis = 0;
  116.   static uint16_t sHue16 = 0;
  117.  
  118.   uint8_t sat8 = beatsin88( 87, 220, 250);
  119.   uint8_t brightdepth = beatsin88( 341, 96, 224);
  120.   uint16_t brightnessthetainc16 = beatsin88( 203, (25 * 256), (40 * 256));
  121.   uint8_t msmultiplier = beatsin88(147, 23, 60);
  122.  
  123.   uint16_t hue16 = sHue16;//gHue * 256;
  124.   uint16_t hueinc16 = beatsin88(113, 1, 3000);
  125.  
  126.   uint16_t ms = millis();
  127.   uint16_t deltams = ms - sLastMillis ;
  128.   sLastMillis  = ms;
  129.   sPseudotime += deltams * msmultiplier;
  130.   sHue16 += deltams * beatsin88( 400, 5,9);
  131.   uint16_t brightnesstheta16 = sPseudotime;
  132.  
  133.   for( uint16_t i = 0 ; i < NUM_LEDS; i++) {
  134.     hue16 += hueinc16;
  135.     uint8_t hue8 = hue16 / 256;
  136.  
  137.     brightnesstheta16  += brightnessthetainc16;
  138.     uint16_t b16 = sin16( brightnesstheta16  ) + 32768;
  139.  
  140.     uint16_t bri16 = (uint32_t)((uint32_t)b16 * (uint32_t)b16) / 65536;
  141.     uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536;
  142.     bri8 += (255 - brightdepth);
  143.    
  144.     CRGB newcolor = CHSV( hue8, sat8, bri8);
  145.    
  146.     uint16_t pixelnumber = i;
  147.     pixelnumber = (NUM_LEDS-1) - pixelnumber;
  148.    
  149.     nblend( leds[pixelnumber], newcolor, 64);
  150.   }
  151.  
  152. FastLED.show();
  153. }
  154.  
  155. void showProgram1()
  156. {
  157.    // paste what was in preset1()
  158.     zone1(255, 128, 171);
  159.     zone2(255, 128, 171);
  160.     zone3(103, 58, 183);
  161.     zone4(255, 128, 171);
  162.     zone5(255, 0, 0);
  163.     zone6(103, 58, 183);
  164.     zone7(255, 0, 0);
  165.     FastLED.show();
  166. }
  167.  
  168.  
  169.  
  170. void showDefault()
  171. {
  172.    // paste what was in presetOff()
  173.     zone1(0,0,0);
  174.     zone2(0,0,0);
  175.     zone3(0,0,0);
  176.     zone4(0,0,0);
  177.     zone5(0,0,0);
  178.     zone6(0,0,0);
  179.     zone7(0,0,0);
  180.     FastLED.show();
  181. }
  182.  
  183.  
  184.  
  185. // get rid of the presetX() functions and replace with:
  186. void setCurrentPreset(int newPreset)
  187. {
  188.    activePreset = newPreset;
  189. }
  190.  
  191. // then your loop() looks like:
  192. void loop(){
  193.   if (irrecv.decode(&results)){
  194.     setCurrentPreset(1);
  195.     Serial.println(results.value, HEX);
  196.         if (results.value == 0XFFFFFFFF)
  197.           results.value = key_value;
  198.  
  199.         switch(results.value){
  200.           case 0xFFA25D:
  201.           Serial.println("On/Off");
  202.           setCurrentPreset(-1);
  203.           break;
  204.           case 0xFF629D:
  205. //          Serial.println("Vol+");
  206.           //brightnessUp();
  207.           break;
  208.           case 0xFFE21D:
  209. //          Serial.println("Func/Stop");
  210.           break;
  211.           case 0xFF22DD:
  212. //          Serial.println("|<<");
  213.           break;
  214.           case 0xFF02FD:
  215. //          Serial.println(">||");
  216.           break ;  
  217.           case 0xFFC23D:
  218. //          Serial.println(">>|");
  219.           break ;              
  220.           case 0xFFE01F:
  221. //          Serial.println("-");
  222.           //brightnessDown();
  223.           break ;  
  224.           case 0xFFA857:
  225. //          Serial.println("Vol-");
  226.           //brightnessDown();
  227.           break ;  
  228.           case 0xFF906F:
  229. //          Serial.println("+");
  230.           //brightnessUp();
  231.           break ;  
  232.           case 0xFF6897:
  233. //          Serial.println("0");
  234.           setCurrentPreset(0);
  235.           break ;  
  236.           case 0xFF9867:
  237. //          Serial.println("EQ");
  238.           break ;
  239.           case 0xFFB04F:
  240. //          Serial.println("St/Rept");
  241.           break ;
  242.           case 0xFF30CF:
  243. //          Serial.println("1");
  244.           setCurrentPreset(1);
  245.           break ;
  246.           case 0xFF18E7:
  247. //          Serial.println("2");
  248.           //preset2();
  249.           break ;
  250.           case 0xFF7A85:
  251. //          Serial.println("3");
  252.           //preset3();
  253.           break ;
  254.           case 0xFF10EF:
  255. //          Serial.println("4");
  256.           //preset4();
  257.           break ;
  258.           case 0xFF38C7:
  259. //          Serial.println("5");
  260.           break ;
  261.           case 0xFF5AA5:
  262. //          Serial.println("6");
  263.           break ;
  264.           case 0xFF42BD:
  265. //          Serial.println("7");
  266.           break ;
  267.           case 0xFF4AB5:
  268. //          Serial.println("8");
  269.           break ;
  270.           case 0xFF52AD:
  271. //          Serial.println("9");
  272.           break ;      
  273.         }
  274.         key_value = results.value;
  275.         irrecv.resume();
  276.   }
  277.    
  278.     // same thing as now but with presetX() calls replaced with setCurrentPreset()
  279.  
  280.  
  281.   showCurrentPreset();
  282. }
  283.  
Advertisement
Add Comment
Please, Sign In to add comment