LEDPROJECT69420

Untitled

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