Advertisement
Wirahh

My Custom Rainbow RGB PC Using Arduino

Jun 16th, 2021
1,693
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Adafruit_NeoPixel.h>
  2.  
  3. #define pin_LED_2 2
  4. #define pin_LED_3 3
  5. #define pin_LED_4 4
  6.  
  7. #define pin_LED_5 5
  8. #define pin_LED_6 6
  9. #define pin_LED_7 7
  10.  
  11. #define pin_LED_8 8
  12.  
  13. #define jumlah_LED_2_ring1 6
  14. #define jumlah_LED_2_ring2 12
  15. #define jumlah_LED_3_ring1 6
  16. #define jumlah_LED_3_ring2 12
  17. #define jumlah_LED_4_ring1 6
  18. #define jumlah_LED_4_ring2 12
  19.  
  20. #define jumlah_LED_5 8
  21. #define jumlah_LED_6 8
  22. #define jumlah_LED_7 8
  23.  
  24. #define jumlah_LED_8 48
  25.  
  26. #define max_blok_gradient 6
  27. #define max_jarak_warna_per_blok 255
  28.  
  29. #define pelembut 40.0
  30. #define kecerahan 100 // (0-100)
  31.  
  32. Adafruit_NeoPixel ledPixels_2 = Adafruit_NeoPixel(jumlah_LED_2_ring1 + jumlah_LED_2_ring2, pin_LED_2, NEO_RGB + NEO_KHZ800);
  33. Adafruit_NeoPixel ledPixels_3 = Adafruit_NeoPixel(jumlah_LED_3_ring1 + jumlah_LED_3_ring2, pin_LED_3, NEO_RGB + NEO_KHZ800);
  34. Adafruit_NeoPixel ledPixels_4 = Adafruit_NeoPixel(jumlah_LED_4_ring1 + jumlah_LED_4_ring2, pin_LED_4, NEO_RGB + NEO_KHZ800);
  35.  
  36. Adafruit_NeoPixel ledPixels_5 = Adafruit_NeoPixel(jumlah_LED_5, pin_LED_5, NEO_RGB + NEO_KHZ800);
  37. Adafruit_NeoPixel ledPixels_6 = Adafruit_NeoPixel(jumlah_LED_6, pin_LED_6, NEO_RGB + NEO_KHZ800);
  38. Adafruit_NeoPixel ledPixels_7 = Adafruit_NeoPixel(jumlah_LED_7, pin_LED_7, NEO_RGB + NEO_KHZ800);
  39.  
  40. Adafruit_NeoPixel ledPixels_8 = Adafruit_NeoPixel(jumlah_LED_8, pin_LED_8, NEO_RGB + NEO_KHZ800);
  41.  
  42. double jarak_warna_per_LED_2_ring1 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_2_ring1);
  43. double jarak_warna_per_LED_2_ring2 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_2_ring2);
  44. double jarak_warna_per_LED_3_ring1 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_3_ring1);
  45. double jarak_warna_per_LED_3_ring2 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_3_ring2);
  46. double jarak_warna_per_LED_4_ring1 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_4_ring1);
  47. double jarak_warna_per_LED_4_ring2 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_4_ring2);
  48.  
  49. double jarak_warna_per_LED_5 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_5); // (0 - 255)
  50. double jarak_warna_per_LED_6 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_6);
  51. double jarak_warna_per_LED_7 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_7);
  52.  
  53. double jarak_warna_per_LED_8 = double(max_jarak_warna_per_blok * max_blok_gradient) / double(jumlah_LED_8);
  54.  
  55. double siklus_2_ring1 = 0.0;
  56. double siklus_2_ring2 = 0.0;
  57. double siklus_3_ring1 = 0.0;
  58. double siklus_3_ring2 = 0.0;
  59. double siklus_4_ring1 = 0.0;
  60. double siklus_4_ring2 = 0.0;
  61.  
  62. double siklus_5 = 0.0;
  63. double siklus_6 = 0.0;
  64. double siklus_7 = 0.0;
  65.  
  66. double siklus_8 = 0.0;
  67.  
  68. int blok = 0;
  69. int jarak_warna_dari_tepi_blok_2_ring1 = 0;
  70. int jarak_warna_dari_tepi_blok_2_ring2 = 0;
  71. int jarak_warna_dari_tepi_blok_3_ring1 = 0;
  72. int jarak_warna_dari_tepi_blok_3_ring2 = 0;
  73. int jarak_warna_dari_tepi_blok_4_ring1 = 0;
  74. int jarak_warna_dari_tepi_blok_4_ring2 = 0;
  75.  
  76. int jarak_warna_dari_tepi_blok_5 = 0;
  77. int jarak_warna_dari_tepi_blok_6 = 0;
  78. int jarak_warna_dari_tepi_blok_7 = 0;
  79.  
  80. int jarak_warna_dari_tepi_blok_8 = 0;
  81.  
  82. int jumlah_LED_per_blok_2_ring1 = int(jumlah_LED_2_ring1 / max_blok_gradient);
  83. int jumlah_LED_per_blok_2_ring2 = int(jumlah_LED_2_ring2 / max_blok_gradient);
  84. int jumlah_LED_per_blok_3_ring1 = int(jumlah_LED_3_ring1 / max_blok_gradient);
  85. int jumlah_LED_per_blok_3_ring2 = int(jumlah_LED_3_ring2 / max_blok_gradient);
  86. int jumlah_LED_per_blok_4_ring1 = int(jumlah_LED_4_ring1 / max_blok_gradient);
  87. int jumlah_LED_per_blok_4_ring2 = int(jumlah_LED_4_ring2 / max_blok_gradient);
  88.  
  89. int jumlah_LED_per_blok_5 = int(jumlah_LED_5 / max_blok_gradient);
  90. int jumlah_LED_per_blok_6 = int(jumlah_LED_6 / max_blok_gradient);
  91. int jumlah_LED_per_blok_7 = int(jumlah_LED_7 / max_blok_gradient);
  92.  
  93. int jumlah_LED_per_blok_8 = int(jumlah_LED_8 / max_blok_gradient);
  94.  
  95. int max_LED = 0;
  96.  
  97. double ring_loop = 6.0;
  98.  
  99. int r = 0;
  100. int g = 0;
  101. int b = 0;
  102.  
  103. void setup()
  104. {
  105.   ledPixels_2.begin();
  106.   ledPixels_3.begin();
  107.   ledPixels_4.begin();
  108.   ledPixels_5.begin();
  109.   ledPixels_6.begin();
  110.   ledPixels_7.begin();
  111.   ledPixels_8.begin();
  112.  
  113.   ledPixels_2.setBrightness(kecerahan);
  114.   ledPixels_3.setBrightness(kecerahan);
  115.   ledPixels_4.setBrightness(kecerahan);
  116.   ledPixels_5.setBrightness(kecerahan);
  117.   ledPixels_6.setBrightness(kecerahan);
  118.   ledPixels_7.setBrightness(kecerahan);
  119.   ledPixels_8.setBrightness(kecerahan);
  120. }
  121.  
  122. void loop()
  123. {
  124.   // Loop LED 2 Ring 1
  125.   for (int led = 0; led < jumlah_LED_2_ring1; led++) {
  126.    
  127.     blok = int((siklus_2_ring1 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_2_ring1));
  128.     blok = blok % max_blok_gradient;
  129.     jarak_warna_dari_tepi_blok_2_ring1 = int(double(siklus_2_ring1 + double(led)) * double(jarak_warna_per_LED_2_ring1));
  130.     jarak_warna_dari_tepi_blok_2_ring1 = jarak_warna_dari_tepi_blok_2_ring1 % max_jarak_warna_per_blok;
  131.  
  132.     if (blok < 1) {
  133.       r = 255;
  134.       g = jarak_warna_dari_tepi_blok_2_ring1;
  135.       b = 0;
  136.     }
  137.     else if (blok < 2) {
  138.       r = 255 - jarak_warna_dari_tepi_blok_2_ring1;
  139.       g = 255;
  140.       b = 0;
  141.     }
  142.     else if (blok < 3) {
  143.       r = 0;
  144.       g = 255;
  145.       b = jarak_warna_dari_tepi_blok_2_ring1;
  146.     }
  147.     else if (blok < 4) {
  148.       r = 0;
  149.       g = 255 - jarak_warna_dari_tepi_blok_2_ring1;
  150.       b = 255;
  151.     }
  152.     else if (blok < 5) {
  153.       r = jarak_warna_dari_tepi_blok_2_ring1;
  154.       g = 0;
  155.       b = 255;
  156.     }
  157.     else if (blok < 6) {
  158.       r = 255;
  159.       g = 0;
  160.       b = 255 - jarak_warna_dari_tepi_blok_2_ring1;
  161.     }
  162.     ledPixels_2.setPixelColor(led, ledPixels_2.Color(g, r, b));
  163.   }
  164.  
  165.   // Loop LED 2 Ring 2
  166.   //for (int led = jumlah_LED_2_ring1; led < jumlah_LED_2_ring1 + jumlah_LED_2_ring2; led++) {
  167.   for (int led = 0; led < jumlah_LED_2_ring2; led++) {
  168.    
  169.     blok = int((siklus_2_ring2 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_2_ring2));
  170.     blok = blok % max_blok_gradient;
  171.     jarak_warna_dari_tepi_blok_2_ring2 = int(double(siklus_2_ring2 + double(led)) * double(jarak_warna_per_LED_2_ring2));
  172.     jarak_warna_dari_tepi_blok_2_ring2 = jarak_warna_dari_tepi_blok_2_ring2 % max_jarak_warna_per_blok;
  173.  
  174.     max_LED = jumlah_LED_2_ring1 + jumlah_LED_2_ring2 - 1;
  175.    
  176.     if (blok < 1) {
  177.       r = 255;
  178.       g = jarak_warna_dari_tepi_blok_2_ring2;
  179.       b = 0;
  180.     }
  181.     else if (blok < 2) {
  182.       r = 255 - jarak_warna_dari_tepi_blok_2_ring2;
  183.       g = 255;
  184.       b = 0;
  185.     }
  186.     else if (blok < 3) {
  187.       r = 0;
  188.       g = 255;
  189.       b = jarak_warna_dari_tepi_blok_2_ring2;
  190.     }
  191.     else if (blok < 4) {
  192.       r = 0;
  193.       g = 255 - jarak_warna_dari_tepi_blok_2_ring2;
  194.       b = 255;
  195.     }
  196.     else if (blok < 5) {
  197.       r = jarak_warna_dari_tepi_blok_2_ring2;
  198.       g = 0;
  199.       b = 255;
  200.     }
  201.     else if (blok < 6) {
  202.       r = 255;
  203.       g = 0;
  204.       b = 255 - jarak_warna_dari_tepi_blok_2_ring2;
  205.     }
  206.     ledPixels_2.setPixelColor(max_LED - led, ledPixels_2.Color(g, r, b));
  207.   }
  208.  
  209.   // Loop LED 3 Ring 1
  210.   for (int led = 0; led < jumlah_LED_3_ring1; led++) {
  211.  
  212.       blok = int((siklus_3_ring1 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_3_ring1));
  213.       blok = blok % max_blok_gradient;
  214.       jarak_warna_dari_tepi_blok_3_ring1 = int(double(siklus_3_ring1 + double(led)) * double(jarak_warna_per_LED_3_ring1));
  215.       jarak_warna_dari_tepi_blok_3_ring1 = jarak_warna_dari_tepi_blok_3_ring1 % max_jarak_warna_per_blok;
  216.  
  217.       if (blok < 1) {
  218.           r = 255;
  219.           g = jarak_warna_dari_tepi_blok_3_ring1;
  220.           b = 0;
  221.       }
  222.       else if (blok < 2) {
  223.           r = 255 - jarak_warna_dari_tepi_blok_3_ring1;
  224.           g = 255;
  225.           b = 0;
  226.       }
  227.       else if (blok < 3) {
  228.           r = 0;
  229.           g = 255;
  230.           b = jarak_warna_dari_tepi_blok_3_ring1;
  231.       }
  232.       else if (blok < 4) {
  233.           r = 0;
  234.           g = 255 - jarak_warna_dari_tepi_blok_3_ring1;
  235.           b = 255;
  236.       }
  237.       else if (blok < 5) {
  238.           r = jarak_warna_dari_tepi_blok_3_ring1;
  239.           g = 0;
  240.           b = 255;
  241.       }
  242.       else if (blok < 6) {
  243.           r = 255;
  244.           g = 0;
  245.           b = 255 - jarak_warna_dari_tepi_blok_3_ring1;
  246.       }
  247.       ledPixels_3.setPixelColor(led, ledPixels_3.Color(g, r, b));
  248.   }
  249.  
  250.   // Loop LED 3 Ring 2
  251.   //for (int led = jumlah_LED_3_ring1; led < jumlah_LED_3_ring1 + jumlah_LED_3_ring2; led++) {
  252.   for (int led = 0; led < jumlah_LED_3_ring2; led++) {
  253.  
  254.       blok = int((siklus_3_ring2 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_3_ring2));
  255.       blok = blok % max_blok_gradient;
  256.       jarak_warna_dari_tepi_blok_3_ring2 = int(double(siklus_3_ring2 + double(led)) * double(jarak_warna_per_LED_3_ring2));
  257.       jarak_warna_dari_tepi_blok_3_ring2 = jarak_warna_dari_tepi_blok_3_ring2 % max_jarak_warna_per_blok;
  258.  
  259.       max_LED = jumlah_LED_3_ring1 + jumlah_LED_3_ring2 - 1;
  260.  
  261.       if (blok < 1) {
  262.           r = 255;
  263.           g = jarak_warna_dari_tepi_blok_3_ring2;
  264.           b = 0;
  265.       }
  266.       else if (blok < 2) {
  267.           r = 255 - jarak_warna_dari_tepi_blok_3_ring2;
  268.           g = 255;
  269.           b = 0;
  270.       }
  271.       else if (blok < 3) {
  272.           r = 0;
  273.           g = 255;
  274.           b = jarak_warna_dari_tepi_blok_3_ring2;
  275.       }
  276.       else if (blok < 4) {
  277.           r = 0;
  278.           g = 255 - jarak_warna_dari_tepi_blok_3_ring2;
  279.           b = 255;
  280.       }
  281.       else if (blok < 5) {
  282.           r = jarak_warna_dari_tepi_blok_3_ring2;
  283.           g = 0;
  284.           b = 255;
  285.       }
  286.       else if (blok < 6) {
  287.           r = 255;
  288.           g = 0;
  289.           b = 255 - jarak_warna_dari_tepi_blok_3_ring2;
  290.       }
  291.       ledPixels_3.setPixelColor(max_LED - led, ledPixels_3.Color(g, r, b));
  292.   }
  293.  
  294.   // Loop LED 4 Ring 1
  295.   for (int led = 0; led < jumlah_LED_4_ring1; led++) {
  296.  
  297.       blok = int((siklus_4_ring1 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_4_ring1));
  298.       blok = blok % max_blok_gradient;
  299.       jarak_warna_dari_tepi_blok_4_ring1 = int(double(siklus_4_ring1 + double(led)) * double(jarak_warna_per_LED_4_ring1));
  300.       jarak_warna_dari_tepi_blok_4_ring1 = jarak_warna_dari_tepi_blok_4_ring1 % max_jarak_warna_per_blok;
  301.  
  302.       if (blok < 1) {
  303.           r = 255;
  304.           g = jarak_warna_dari_tepi_blok_4_ring1;
  305.           b = 0;
  306.       }
  307.       else if (blok < 2) {
  308.           r = 255 - jarak_warna_dari_tepi_blok_4_ring1;
  309.           g = 255;
  310.           b = 0;
  311.       }
  312.       else if (blok < 3) {
  313.           r = 0;
  314.           g = 255;
  315.           b = jarak_warna_dari_tepi_blok_4_ring1;
  316.       }
  317.       else if (blok < 4) {
  318.           r = 0;
  319.           g = 255 - jarak_warna_dari_tepi_blok_4_ring1;
  320.           b = 255;
  321.       }
  322.       else if (blok < 5) {
  323.           r = jarak_warna_dari_tepi_blok_4_ring1;
  324.           g = 0;
  325.           b = 255;
  326.       }
  327.       else if (blok < 6) {
  328.           r = 255;
  329.           g = 0;
  330.           b = 255 - jarak_warna_dari_tepi_blok_4_ring1;
  331.       }
  332.       ledPixels_4.setPixelColor(led, ledPixels_4.Color(g, r, b));
  333.   }
  334.  
  335.   // Loop LED 4 Ring 2
  336.   //for (int led = jumlah_LED_4_ring1; led < jumlah_LED_4_ring1 + jumlah_LED_4_ring2; led++) {
  337.   for (int led = 0; led < jumlah_LED_4_ring2; led++) {
  338.  
  339.       blok = int((siklus_4_ring2 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_4_ring2));
  340.       blok = blok % max_blok_gradient;
  341.       jarak_warna_dari_tepi_blok_4_ring2 = int(double(siklus_4_ring2 + double(led)) * double(jarak_warna_per_LED_4_ring2));
  342.       jarak_warna_dari_tepi_blok_4_ring2 = jarak_warna_dari_tepi_blok_4_ring2 % max_jarak_warna_per_blok;
  343.  
  344.       max_LED = jumlah_LED_4_ring1 + jumlah_LED_4_ring2 - 1;
  345.  
  346.       if (blok < 1) {
  347.           r = 255;
  348.           g = jarak_warna_dari_tepi_blok_4_ring2;
  349.           b = 0;
  350.       }
  351.       else if (blok < 2) {
  352.           r = 255 - jarak_warna_dari_tepi_blok_4_ring2;
  353.           g = 255;
  354.           b = 0;
  355.       }
  356.       else if (blok < 3) {
  357.           r = 0;
  358.           g = 255;
  359.           b = jarak_warna_dari_tepi_blok_4_ring2;
  360.       }
  361.       else if (blok < 4) {
  362.           r = 0;
  363.           g = 255 - jarak_warna_dari_tepi_blok_4_ring2;
  364.           b = 255;
  365.       }
  366.       else if (blok < 5) {
  367.           r = jarak_warna_dari_tepi_blok_4_ring2;
  368.           g = 0;
  369.           b = 255;
  370.       }
  371.       else if (blok < 6) {
  372.           r = 255;
  373.           g = 0;
  374.           b = 255 - jarak_warna_dari_tepi_blok_4_ring2;
  375.       }
  376.       ledPixels_4.setPixelColor(max_LED - led, ledPixels_4.Color(g, r, b));
  377.   }
  378.  
  379.  
  380.   // Loop LED 5
  381.   for (int led = 0; led < jumlah_LED_5; led++) {
  382.    
  383.     blok = int((siklus_5 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_5));
  384.     blok = blok % max_blok_gradient;
  385.     jarak_warna_dari_tepi_blok_5 = int(double(siklus_5 + double(led)) * jarak_warna_per_LED_5);
  386.     jarak_warna_dari_tepi_blok_5 = jarak_warna_dari_tepi_blok_5 % max_jarak_warna_per_blok;
  387.  
  388.     if (blok < 1) {
  389.       r = 255;
  390.       g = jarak_warna_dari_tepi_blok_5;
  391.       b = 0;
  392.     }
  393.     else if (blok < 2) {
  394.       r = 255 - jarak_warna_dari_tepi_blok_5;
  395.       g = 255;
  396.       b = 0;
  397.     }
  398.     else if (blok < 3) {
  399.       r = 0;
  400.       g = 255;
  401.       b = jarak_warna_dari_tepi_blok_5;
  402.     }
  403.     else if (blok < 4) {
  404.       r = 0;
  405.       g = 255 - jarak_warna_dari_tepi_blok_5;
  406.       b = 255;
  407.     }
  408.     else if (blok < 5) {
  409.       r = jarak_warna_dari_tepi_blok_5;
  410.       g = 0;
  411.       b = 255;
  412.     }
  413.     else if (blok < 6) {
  414.       r = 255;
  415.       g = 0;
  416.       b = 255 - jarak_warna_dari_tepi_blok_5;
  417.     }
  418.     ledPixels_5.setPixelColor(led, ledPixels_5.Color(g, r, b));
  419.   }
  420.  
  421.   // Loop LED 6
  422.   for (int led = 0; led < jumlah_LED_6; led++) {
  423.  
  424.       blok = int((siklus_6 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_6));
  425.       blok = blok % max_blok_gradient;
  426.       jarak_warna_dari_tepi_blok_6 = int(double(siklus_6 + double(led)) * jarak_warna_per_LED_6);
  427.       jarak_warna_dari_tepi_blok_6 = jarak_warna_dari_tepi_blok_6 % max_jarak_warna_per_blok;
  428.  
  429.       if (blok < 1) {
  430.           r = 255;
  431.           g = jarak_warna_dari_tepi_blok_6;
  432.           b = 0;
  433.       }
  434.       else if (blok < 2) {
  435.           r = 255 - jarak_warna_dari_tepi_blok_6;
  436.           g = 255;
  437.           b = 0;
  438.       }
  439.       else if (blok < 3) {
  440.           r = 0;
  441.           g = 255;
  442.           b = jarak_warna_dari_tepi_blok_6;
  443.       }
  444.       else if (blok < 4) {
  445.           r = 0;
  446.           g = 255 - jarak_warna_dari_tepi_blok_6;
  447.           b = 255;
  448.       }
  449.       else if (blok < 5) {
  450.           r = jarak_warna_dari_tepi_blok_6;
  451.           g = 0;
  452.           b = 255;
  453.       }
  454.       else if (blok < 6) {
  455.           r = 255;
  456.           g = 0;
  457.           b = 255 - jarak_warna_dari_tepi_blok_6;
  458.       }
  459.       ledPixels_6.setPixelColor(led, ledPixels_6.Color(g, r, b));
  460.   }
  461.  
  462.   // Loop LED 7
  463.   for (int led = 0; led < jumlah_LED_7; led++) {
  464.  
  465.       blok = int((siklus_7 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_7));
  466.       blok = blok % max_blok_gradient;
  467.       jarak_warna_dari_tepi_blok_7 = int(double(siklus_7 + double(led)) * jarak_warna_per_LED_7);
  468.       jarak_warna_dari_tepi_blok_7 = jarak_warna_dari_tepi_blok_7 % max_jarak_warna_per_blok;
  469.  
  470.       if (blok < 1) {
  471.           r = 255;
  472.           g = jarak_warna_dari_tepi_blok_7;
  473.           b = 0;
  474.       }
  475.       else if (blok < 2) {
  476.           r = 255 - jarak_warna_dari_tepi_blok_7;
  477.           g = 255;
  478.           b = 0;
  479.       }
  480.       else if (blok < 3) {
  481.           r = 0;
  482.           g = 255;
  483.           b = jarak_warna_dari_tepi_blok_7;
  484.       }
  485.       else if (blok < 4) {
  486.           r = 0;
  487.           g = 255 - jarak_warna_dari_tepi_blok_7;
  488.           b = 255;
  489.       }
  490.       else if (blok < 5) {
  491.           r = jarak_warna_dari_tepi_blok_7;
  492.           g = 0;
  493.           b = 255;
  494.       }
  495.       else if (blok < 6) {
  496.           r = 255;
  497.           g = 0;
  498.           b = 255 - jarak_warna_dari_tepi_blok_7;
  499.       }
  500.       ledPixels_7.setPixelColor(led, ledPixels_7.Color(g, r, b));
  501.   }
  502.  
  503.  
  504.   // Loop LED 8
  505.   for (int led = 0; led < jumlah_LED_8; led++) {
  506.    
  507.       blok = int((siklus_8 + double(led)) * double(max_blok_gradient) / double(jumlah_LED_8));
  508.       blok = blok % max_blok_gradient;
  509.       jarak_warna_dari_tepi_blok_8 = int(double(siklus_8 + double(led)) * jarak_warna_per_LED_8);
  510.       jarak_warna_dari_tepi_blok_8 = jarak_warna_dari_tepi_blok_8 % max_jarak_warna_per_blok;
  511.  
  512.       max_LED = 47;
  513.      
  514.       if (blok < 1) {
  515.           r = 255;
  516.           g = jarak_warna_dari_tepi_blok_8;
  517.           b = 0;
  518.       }
  519.       else if (blok < 2) {
  520.           r = 255 - jarak_warna_dari_tepi_blok_8;
  521.           g = 255;
  522.           b = 0;
  523.       }
  524.       else if (blok < 3) {
  525.           r = 0;
  526.           g = 255;
  527.           b = jarak_warna_dari_tepi_blok_8;
  528.       }
  529.       else if (blok < 4) {
  530.           r = 0;
  531.           g = 255 - jarak_warna_dari_tepi_blok_8;
  532.           b = 255;
  533.       }
  534.       else if (blok < 5) {
  535.           r = jarak_warna_dari_tepi_blok_8;
  536.           g = 0;
  537.           b = 255;
  538.       }
  539.       else if (blok < 6) {
  540.           r = 255;
  541.           g = 0;
  542.           b = 255 - jarak_warna_dari_tepi_blok_8;
  543.       }
  544.       ledPixels_8.setPixelColor(max_LED - led, ledPixels_8.Color(g, r, b));
  545.   }
  546.  
  547.   if (ring_loop <= 18.0) {
  548.       ledPixels_2.setPixelColor(int(ring_loop), ledPixels_2.Color(0, 255, 0));
  549.   } else if (ring_loop <= 36.0) {
  550.       ledPixels_3.setPixelColor(int(ring_loop) - 18, ledPixels_3.Color(0, 255, 0));
  551.   } else if (ring_loop <= 54.0) {
  552.       ledPixels_4.setPixelColor(int(ring_loop) - 36, ledPixels_4.Color(0, 255, 0));
  553.   } else if (ring_loop <= 62.0) {
  554.       ledPixels_5.setPixelColor(int(ring_loop) - 54, ledPixels_5.Color(0, 255, 0));
  555.   } else if (ring_loop <= 70.0) {
  556.       ledPixels_6.setPixelColor(int(ring_loop) - 62, ledPixels_6.Color(0, 255, 0));
  557.   } else if (ring_loop <= 78.0) {
  558.       ledPixels_7.setPixelColor(int(ring_loop) - 70, ledPixels_7.Color(0, 255, 0));
  559.   } else if (ring_loop <= 126.0) {
  560.       ledPixels_8.setPixelColor(int(ring_loop) - 78, ledPixels_8.Color(0, 255, 0));
  561.       ledPixels_8.setPixelColor(int(ring_loop) - 78 + 1, ledPixels_8.Color(0, 255, 0));
  562.       ledPixels_8.setPixelColor(int(ring_loop) - 78 + 2, ledPixels_8.Color(0, 255, 0));
  563.       ledPixels_8.setPixelColor(int(ring_loop) - 78 + 3, ledPixels_8.Color(0, 255, 0));
  564.   } else {
  565.       ring_loop = 0;
  566.   }
  567.  
  568.   ledPixels_2.show();
  569.   ledPixels_3.show();
  570.   ledPixels_4.show();
  571.   ledPixels_5.show();
  572.   ledPixels_6.show();
  573.   ledPixels_7.show();
  574.   ledPixels_8.show();
  575.  
  576.   if (ring_loop < 78.0) {
  577.     ring_loop += pelembut / 100.0;
  578.   } else {
  579.     ring_loop += (48 / 36 * 2) * pelembut / 100.0;
  580.   }
  581.  
  582.   if (ring_loop > 18.0 && ring_loop < 23.0) {
  583.     ring_loop = 24.0;
  584.   } else if (ring_loop > 36.0 && ring_loop < 41.0) {
  585.     ring_loop = 42.0;
  586.   } else if (ring_loop > 126.0) {
  587.     ring_loop = 6.0;
  588.   }
  589.  
  590.    //delay(50);
  591.  
  592.   siklus_2_ring1 = siklus_2_ring1 + (1.0 / pelembut * (double(jumlah_LED_2_ring1) / double(jumlah_LED_5)));
  593.   if (siklus_2_ring1 > jumlah_LED_2_ring1) {
  594.     siklus_2_ring1 = siklus_2_ring1 - jumlah_LED_2_ring1;
  595.   }
  596.  
  597.   siklus_2_ring2 = siklus_2_ring2 + (1.0 / pelembut * (double(jumlah_LED_2_ring2) / double(jumlah_LED_5)));
  598.   if (siklus_2_ring2 > jumlah_LED_2_ring2) {
  599.     siklus_2_ring2 = siklus_2_ring2 - jumlah_LED_2_ring2;
  600.   }
  601.  
  602.   siklus_3_ring1 = siklus_3_ring1 + (1.0 / pelembut * (double(jumlah_LED_3_ring1) / double(jumlah_LED_5)));
  603.   if (siklus_3_ring1 > jumlah_LED_3_ring1) {
  604.     siklus_3_ring1 = siklus_3_ring1 - jumlah_LED_3_ring1;
  605.   }
  606.  
  607.   siklus_3_ring2 = siklus_3_ring2 + (1.0 / pelembut * (double(jumlah_LED_3_ring2) / double(jumlah_LED_5)));
  608.   if (siklus_3_ring2 > jumlah_LED_3_ring2) {
  609.     siklus_3_ring2 = siklus_3_ring2 - jumlah_LED_3_ring2;
  610.   }
  611.  
  612.   siklus_4_ring1 = siklus_4_ring1 + (1.0 / pelembut * (double(jumlah_LED_4_ring1) / double(jumlah_LED_5)));
  613.   if (siklus_4_ring1 > jumlah_LED_4_ring1) {
  614.     siklus_4_ring1 = siklus_4_ring1 - jumlah_LED_4_ring1;
  615.   }
  616.  
  617.   siklus_4_ring2 = siklus_4_ring2 + (1.0 / pelembut * (double(jumlah_LED_4_ring2) / double(jumlah_LED_5)));
  618.   if (siklus_4_ring2 > jumlah_LED_4_ring2) {
  619.     siklus_4_ring2 = siklus_4_ring2 - jumlah_LED_4_ring2;
  620.   }
  621.  
  622.  
  623.   siklus_5 = siklus_5 + (1.0 / pelembut);
  624.   if (siklus_5 > jumlah_LED_5) {
  625.     siklus_5 = siklus_5 - jumlah_LED_5;
  626.   }
  627.  
  628.   siklus_6 = siklus_6 + (1.0 / pelembut);
  629.   if (siklus_6 > jumlah_LED_6) {
  630.     siklus_6 = siklus_6 - jumlah_LED_6;
  631.   }
  632.  
  633.   siklus_7 = siklus_7 + (1.0 / pelembut);
  634.   if (siklus_7 > jumlah_LED_7) {
  635.     siklus_7 = siklus_7 - jumlah_LED_7;
  636.   }
  637.  
  638.  
  639.   siklus_8 = siklus_8 + (1.0 / pelembut * (double(jumlah_LED_8) / double(jumlah_LED_5))); //Patokan kecepatan LED_5
  640.   if (siklus_8 > jumlah_LED_8) {
  641.     siklus_8 = siklus_8 - jumlah_LED_8;
  642.   }
  643. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement