0@0 LibraryRoot LibraryGroup-Оформление LibraryGroup-Таймеры LibraryGroup-Алгебра LibraryGroup-Сравнение LibraryGroup-UART LibraryGroup-Переключатель LibraryGroup-Моторы LibraryGroup-Часы реального времени LibraryGroup-Дисплеи LibraryGroup-Строки LibraryGroup-ИК управление LibraryGroup-Массивы LibraryGroup-Структуры LibraryGroup-Датчики LibraryGroup-Конвертация типов LibraryGroup-Микросхемы расширений LibraryGroup-Операции с битами LibraryGroup-Другие LibraryGroup-Меню LibraryGroup-Командоаппарат LibraryGroup-EEPROM LibraryGroup-Коммуникации LibraryGroup-Готовые сервисы 0@0 355 0@-100 169 368 0@0 root globalVariable 1 aa42c1bc-afd2-4daf-8453-76e287a01555 LibraryGroup-WS2812 LibraryGroup-Алекс Гувер LibraryGroup-Эффекты 0@-462 6 2 13 4 610@840 630@840 corner: 761.0d@860 610@840 corner: 781.0d@860 635.0d@854.5d WS2812_Eff_Gyver_final 9e3b5f41-961b-42d7-92e1-084db40edbac Эффекты на WS2812 Гивера последний Ставится блок последним, работает только с первымм блоком. Между ними ставить блоки эффектов. 94 } 3 131.0d 10 7 610@360 630@360 corner: 757.0d@420 610@360 corner: 777.0d@420 635.0d@374.5d 11 400@190 420@190 corner: 480@410 400@190 corner: 500@410 435.0d@204.5d V 400@220 420@220 380.0d@223.5d 400@210 corner: 420@230 32 240@170 260@170 corner: 300@250 240@170 corner: 320@250 265.5d@183.5d 34 140@170 160@170 corner: 200@210 140@170 corner: 220@210 166.5d@184.5d 33 30@150 50@150 corner: 110@210 30@150 corner: 130@210 66.0d@163.5d EN 30@180 44@180 30@170 corner: 44@190 OnVal 10000 30@200 50@200 -1.0d@203.5d 30@190 corner: 50@210 110@190 corner: 130@210 130@200 simetricMulti 0 Q 9.0d 110@200 130@200 corner: 130@200 I 140@200 160@200 140@190 corner: 160@210 200@190 corner: 220@210 220@200 200@200 220@200 corner: 220@200 EN 240@200 260@200 240@190 corner: 260@210 MAX 9 240@220 260@220 232.0d@223.5d 240@210 corner: 260@230 MIN 240@240 260@240 232.0d@243.5d 240@230 corner: 260@250 300@230 corner: 320@250 320@240 300@240 5 17 450@80 470@80 corner: 550@120 450@80 corner: 570@120 471.0d@94.5d 450@100 corner: 470@120 16 610@80 630@80 corner: 685.0d@120 610@80 corner: 705.0d@120 635.0d@94.5d 610@100 corner: 630@120 610@110 Clear_eff clear fd3f8f9e-3249-4526-81f1-85eb86e1b516 4283209c-2372-4cf2-9995-2f69d3d88fa8 6c588c0c-8516-4697-981b-32aa7453b0da Очистка ленты if (clear) { one_color_all(0, 0, 0); LEDS.show(); } 68 55.0d 630@110 570@110 corner: 570@110 Q 550@110 570@110 550@100 corner: 570@120 450@110 Value 470@110 320@110 corner: 320@240 Sel 400@240 420@240 400@230 corner: 420@250 28 610@140 630@140 corner: 755.0d@200 610@140 corner: 775.0d@200 635.0d@154.5d 610@160 corner: 630@180 time_rf 20 610@190 630@190 596.0d@193.5d Effect_RAINBOW_LOOP Rainbow_loop 895c4f29-7943-446f-baa6-b1c8fd9dc4ce 85f502d4-7269-4357-a9d1-7827e98e694d time_rl f319ad2a-1bcf-4b20-886e-e827ac3cb9eb c8e629f4-6559-4122-a648-01e02275bee3 af7ed5d9-2a9e-462a-afd2-0187576a93d6 Эффект RAINBOW_LOOP Ставится блок между главным и последними блоками. 50 LED_COUNT 48 f932f7e1-f765-48c4-9e33-9778f5f2a6c5 c041f2fd-6a2e-421c-acb9-5b3067390339 if ( Rainbow_loop ) { thisdelay = time_rl; thisstep = 10; rainbow_loop(); } 97 idex++; ihue = ihue + thisstep; if (idex >= LED_COUNT) { idex = 0; } if (ihue > 255) { ihue = 0; } leds[idex] = CHSV(ihue, thissat, 255); LEDS.show(); delay(thisdelay); 192 void rainbow_loop 610@180 corner: 630@200 610@170 Effect_RAINBOW_FADE Rainbow_fade 938784f3-fda6-4c47-ab21-b7673f2cc68c Эффект RAINBOW_FADE Ставится блок между главным и последними блоками. Входы: Rainbow_fade - включение блока; time_rf - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Ihue, Thissat - меняя значения этих параметров можно задавать другие цвета. 264 300 Thissat 255 9ce72adf-db52-47c8-acb3-1055b66cb5b7 6d3e79c6-2787-4846-b798-8dbe215debf2 if ( Rainbow_fade ) { thisdelay = time_rf ; thissat = Thissat; rainbow_fade(); } 110 ihue++; if (ihue > 255) { ihue = 0; } for (int idex = 0 ; idex < LED_COUNT; idex++ ) { leds[idex] = CHSV(ihue, thissat, 255); } LEDS.show(); delay(thisdelay); 180 void rainbow_fade 125.0d 630@170 500@170 corner: 500@220 Q0 15.0d 480@220 500@220 480@210 corner: 500@230 29 610@210 630@210 corner: 757.0d@270 610@210 corner: 777.0d@270 635.0d@224.5d 610@230 corner: 630@250 610@260 630@260 596.0d@263.5d 610@250 corner: 630@270 610@240 5552a7a0-5c9d-40de-893a-ae03742d5903 Ставится блок между главным и последними блоками. Входы: Rainbow_loop - включение блока; time_rl - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thissat - меняя значения этих параметров можно задавать другие цвета. Thisstep - задержка. 285 Thissat 6448c5d7-1e35-4a7e-a3cd-974c43c9bdb7 185df97c-1f7b-49dc-8167-a5a5d4e0dc69 Thisstep ee3343c6-8c7e-47cb-aaf7-46ff6b46393e 0179b9f7-0465-4aff-a52e-67253f384cb4 if ( Rainbow_loop ) { thisdelay = time_rl; thisstep = Thisstep ; thissat = Thissat; rainbow_loop(); } 134 127.0d 630@240 500@240 corner: 500@240 Q1 14.0d 480@240 500@240 480@230 corner: 500@250 30 610@280 630@280 corner: 757.0d@340 610@280 corner: 777.0d@340 635.0d@294.5d 610@300 corner: 630@320 time_rb 610@330 630@330 596.0d@333.5d Effect_RAINBOW_FADE rainbow_fade 39d6ba29-4f8a-486d-a6a6-3c8df78e1b57 c5987971-905c-484e-a3df-16fd211e8055 699692d0-56e5-459e-9413-5c2d04ea6fb7 Эффекты на WS2812 Гивера последний Ставится блок последним, работает только с первымм блоком. Между ними ставить блоки эффектов. if (RAINBOW_FADE) { thisdelay = 20; rainbow_fade(); } ihue++; if (ihue > 255) { ihue = 0; } for (int idex = 0 ; idex < LED_COUNT; idex++ ) { leds[idex] = CHSV(ihue, thissat, 255); } LEDS.show(); delay(thisdelay); 178 void rainbow_fade Rainbow_fade time_rf 5ff2eaf2-83de-403b-a2c2-a417067862d6 36450ce9-5337-47b0-9138-a264dfb2098d 8d713303-b75a-4a8a-bd88-bacb22fa2979 if ( Rainbow_fade ) { thisdelay = time_rf; rainbow_fade(); } 75 610@320 corner: 630@340 610@310 Effect_RANDOM BURST Random_burst a0484f2e-1ba4-469d-869b-0b80f7c001ea Эффект RANDOM BURST Ставится блок между главным и последними блоками. Входы: Random_burst - включение блока; time_rb - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thissat - меняя значения этих параметров можно задавать другие цвета. 261 Thissat c6df25f6-9a62-4f0c-bf85-58c6d5ac80f3 34a6ea07-2fb7-462b-99c3-97b9f6cab658 if ( Random_burst ) { thisdelay = time_rb; thissat = Thissat; random_burst(); } 107 idex = random(0, LED_COUNT); ihue = random(0, 255); leds[idex] = CHSV(ihue, thissat, 255); LEDS.show(); delay(thisdelay); 129 void random_burst 630@310 510@260 corner: 510@310 Q2 480@260 500@260 480@250 corner: 500@270 480@270 corner: 500@290 19 610@430 630@430 corner: 786.0d@490 610@430 corner: 806.0d@490 635.0d@444.5d 610@450 corner: 630@470 time_cbf 40 610@480 630@480 596.0d@483.5d Effect_RAINBOW_LOOP Rainbow_loop 895c4f29-7943-446f-baa6-b1c8fd9dc4ce 85f502d4-7269-4357-a9d1-7827e98e694d time_rl f319ad2a-1bcf-4b20-886e-e827ac3cb9eb c8e629f4-6559-4122-a648-01e02275bee3 af7ed5d9-2a9e-462a-afd2-0187576a93d6 Эффект RAINBOW_LOOP Ставится блок между главным и последними блоками. LED_COUNT f932f7e1-f765-48c4-9e33-9778f5f2a6c5 c041f2fd-6a2e-421c-acb9-5b3067390339 if ( Rainbow_loop ) { thisdelay = time_rl; thisstep = 10; rainbow_loop(); } idex++; ihue = ihue + thisstep; if (idex >= LED_COUNT) { idex = 0; } if (ihue > 255) { ihue = 0; } leds[idex] = CHSV(ihue, thissat, 255); LEDS.show(); delay(thisdelay); void rainbow_loop 610@470 corner: 630@490 610@460 Effect_BOUNCE COLOR FADE Color_bounceFADE 6b444889-637d-454f-8435-782b2f7a3e93 Эффект BOUNCE COLOR FADE Ставится блок между главным и последними блоками. Входы: Color_bounceFADE - включение блока; time_cbf - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thishue, Thissat - меняя значения этих параметров можно задавать другие цвета. 274 Thishue a86d97de-8a66-4768-8860-375e85cba2a5 ac4b8400-f2dc-4c6a-8260-aeb4f0720d7f Thissat 734c6ce6-9d24-4139-8a14-90818f649cbb ca6e2de6-1a86-494f-939e-b566458b4d1e if ( Color_bounceFADE ) { thisdelay = time_cbf ; thishue = Thishue; thissat = Thissat; color_bounceFADE(); } 139 if (bouncedirection == 0) { idex = idex + 1; if (idex == LED_COUNT) { bouncedirection = 1; idex = idex - 1; } } if (bouncedirection == 1) { idex = idex - 1; if (idex == 0) { bouncedirection = 0; } } int iL1 = adjacent_cw(idex); int iL2 = adjacent_cw(iL1); int iL3 = adjacent_cw(iL2); int iR1 = adjacent_ccw(idex); int iR2 = adjacent_ccw(iR1); int iR3 = adjacent_ccw(iR2); for (int i = 0; i < LED_COUNT; i++ ) { if (i == idex) { leds[i] = CHSV(thishue, thissat, 255); } else if (i == iL1) { leds[i] = CHSV(thishue, thissat, 150); } else if (i == iL2) { leds[i] = CHSV(thishue, thissat, 80); } else if (i == iL3) { leds[i] = CHSV(thishue, thissat, 20); } else if (i == iR1) { leds[i] = CHSV(thishue, thissat, 150); } else if (i == iR2) { leds[i] = CHSV(thishue, thissat, 80); } else if (i == iR3) { leds[i] = CHSV(thishue, thissat, 20); } else { leds[i] = CHSV(0, 0, 0); } } LEDS.show(); delay(thisdelay); 1085 void color_bounceFADE 156.0d 630@460 530@300 corner: 530@460 Q4 16.0d 480@300 500@300 480@290 corner: 500@310 26 610@500 630@500 corner: 794.0d@560 610@500 corner: 814.0d@560 635.0d@514.5d 610@520 corner: 630@540 time_elone 610@550 630@550 596.0d@553.5d Effect_RAINBOW_LOOP Rainbow_loop 895c4f29-7943-446f-baa6-b1c8fd9dc4ce 85f502d4-7269-4357-a9d1-7827e98e694d time_rl f319ad2a-1bcf-4b20-886e-e827ac3cb9eb c8e629f4-6559-4122-a648-01e02275bee3 af7ed5d9-2a9e-462a-afd2-0187576a93d6 Эффект RAINBOW_LOOP Ставится блок между главным и последними блоками. LED_COUNT f932f7e1-f765-48c4-9e33-9778f5f2a6c5 c041f2fd-6a2e-421c-acb9-5b3067390339 if ( Rainbow_loop ) { thisdelay = time_rl; thisstep = 10; rainbow_loop(); } idex++; ihue = ihue + thisstep; if (idex >= LED_COUNT) { idex = 0; } if (ihue > 255) { ihue = 0; } leds[idex] = CHSV(ihue, thissat, 255); LEDS.show(); delay(thisdelay); void rainbow_loop 610@540 corner: 630@560 610@530 Effect_POLICE LIGHTS SINGLE Ems_lightsONE ee9c72a6-561b-4582-a4e7-be65955699c4 Эффект POLICE LIGHTS SINGLE Ставится блок между главным и последними блоками. Входы: Ems_lightsONE - включение блока; time_elone - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thishue, Thissat - меняя значения этих параметров можно задавать другие цвета. 275 LED_COUNT 74564eaf-0ff0-43b3-9cf9-900b92802e49 0b9c4552-377b-4543-973d-36e67c62bff7 Thishue 316d33a5-7d30-4303-9cfa-e417a9601aba 3876cb5f-dcf6-4138-8787-95346691fac7 Thissat ae33053a-d138-4021-b331-7a477bd12057 f3324ad8-3ed6-403d-80cf-6bb80aa9e8b3 if ( Ems_lightsONE ) { thisdelay = time_elone; thishue = Thishue; ; thissat = Thissat; ems_lightsONE(); } 140 idex++; if (idex >= LED_COUNT) { idex = 0; } int idexR = idex; int idexB = antipodal_index(idexR); int thathue = (thishue + 160) % 255; for (int i = 0; i < LED_COUNT; i++ ) { if (i == idexR) { leds[i] = CHSV(thishue, thissat, 255); } else if (i == idexB) { leds[i] = CHSV(thathue, thissat, 255); } else { leds[i] = CHSV(0, 0, 0); } } LEDS.show(); delay(thisdelay); 430 void ems_lightsONE 164.0d 630@530 550@320 corner: 550@530 Q5 480@320 500@320 480@310 corner: 500@330 21 610@570 630@570 corner: 787.0d@630 610@570 corner: 807.0d@630 635.0d@584.5d 610@590 corner: 630@610 time_elall 610@620 630@620 596.0d@623.5d 610@610 corner: 630@630 610@600 Effect_POLICE LIGHTS SOLID Ems_lightsALL 14a0d4d9-610e-4209-9433-ff99026ebdcc Эффект POLICE LIGHTS SOLID Ставится блок между главным и последними блоками. Входы: Ems_lightsALL - включение блока; time_elall - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thishue , Thissat - меняя значения этих параметров можно задавать другие цвета. 276 Thishue e6fefb66-ce12-41c0-aefd-513750002968 4c8d5aa4-73cb-4647-a3d0-5ca289412733 Thissat a98284e1-496e-427a-9410-1c10dd17005d bcffbdae-20ee-42b6-94d9-2004f608124b if ( Ems_lightsALL ) { thisdelay = time_elall; thishue = Thishue; thissat = Thissat; ems_lightsALL(); } 137 idex++; if (idex >= LED_COUNT) { idex = 0; } int idexR = idex; int idexB = antipodal_index(idexR); int thathue = (thishue + 160) % 255; leds[idexR] = CHSV(thishue, thissat, 255); leds[idexB] = CHSV(thathue, thissat, 255); LEDS.show(); delay(thisdelay); void ems_lightsALL 157.0d 630@600 510@340 corner: 510@600 Q6 480@340 500@340 480@330 corner: 500@350 22 610@640 630@640 corner: 752.0d@680 610@640 corner: 772.0d@680 635.0d@654.5d 610@660 corner: 630@680 610@670 Effect_STRIP FLICKER Flicker 07c6ddc6-d495-4e6b-93f3-e7bb019e0fea Эффект STRIP FLICKER Ставится блок между главным и последними блоками. Входы: Flicker - включение блока; Параметры: LED_COUNT - количество светодиодов в ленте. Thishue , Thissat - меняя значения этих параметров можно задавать другие цвета. 228 Thissat b330408d-555e-4e96-a04d-effb0915d3a6 bdb29ae1-cdc8-47c1-a9ad-b0533eadb2d1 Thishue 160 250 8e4e03d1-a8cd-4409-8a92-a112982f9cef d7f108a3-9f99-49f1-9b64-2c8e3a54d56e if ( Flicker ) { thishue = Thishue; thissat =Thissat; flicker(); } 88 int random_bright = random(0, 255); int random_delay = random(10, 100); int random_bool = random(0, random_bright); if (random_bool < 10) { for (int i = 0 ; i < LED_COUNT; i++ ) { leds[i] = CHSV(thishue, thissat, random_bright); } LEDS.show(); delay(random_delay); } 298 void flicker 122.0d 630@670 520@360 corner: 520@670 Q7 480@360 500@360 480@350 corner: 500@370 27 610@690 630@690 corner: 817.0d@750 610@690 corner: 837.0d@750 635.0d@704.5d 610@710 corner: 630@730 time_poca 15 610@740 630@740 597.0d@743.5d time_flicker 078467be-1809-4236-b47b-960d6a43a3d5 9860af04-ca85-4b80-8bc0-b9119352afcc 59fb3510-6e41-4f15-9a95-3672356e4fd4 if ( Flicker ) { thisdelay = time_flicker; thissat = 50; flicker(); } 92 610@730 corner: 630@750 610@720 Effect_PULSE COLOR BRIGHTNESS Pulse_one_color_all 552e4278-0778-40c8-8082-44f1382a8699 Эффект PULSE COLOR BRIGHTNESS Ставится блок между главным и последними блоками. Изменяя параметр Thishue и Thissat можно получить разные цвета time_poca - скоростьэффека 144 Thishue 9627ade8-cd14-41a7-870b-2c6bde7d8755 5400b6e8-738b-4bad-86ce-03cc1f655d3f Thissat 48f18b38-0ea8-4227-be7e-1ce1a7546e79 e788b6f8-e172-4263-bee6-264523852c1b if ( Pulse_one_color_all) { thisdelay = time_poca; thishue = Thishue; thissat = Thissat; pulse_one_color_all(); } 152 if (bouncedirection == 0) { ibright++; if (ibright >= 255) { bouncedirection = 1; } } if (bouncedirection == 1) { ibright = ibright - 1; if (ibright <= 1) { bouncedirection = 0; } } for (int idex = 0 ; idex < LED_COUNT; idex++ ) { leds[idex] = CHSV(thishue, thissat, ibright); } LEDS.show(); delay(thisdelay); 365 void pulse_one_color_all 187.0d 630@720 540@380 corner: 540@720 Q8 480@380 500@380 480@370 corner: 500@390 31 610@760 630@760 corner: 817.0d@820 610@760 corner: 837.0d@820 635.0d@774.5d 610@780 corner: 630@800 time_ocar 610@810 630@810 597.0d@813.5d Effect_STRIP FLICKER Effect_RAINBOW_LOOP Rainbow_loop 895c4f29-7943-446f-baa6-b1c8fd9dc4ce 85f502d4-7269-4357-a9d1-7827e98e694d time_rl f319ad2a-1bcf-4b20-886e-e827ac3cb9eb c8e629f4-6559-4122-a648-01e02275bee3 af7ed5d9-2a9e-462a-afd2-0187576a93d6 Эффект RAINBOW_LOOP Ставится блок между главным и последними блоками. LED_COUNT f932f7e1-f765-48c4-9e33-9778f5f2a6c5 c041f2fd-6a2e-421c-acb9-5b3067390339 if ( Rainbow_loop ) { thisdelay = time_rl; thisstep = 10; rainbow_loop(); } idex++; ihue = ihue + thisstep; if (idex >= LED_COUNT) { idex = 0; } if (ihue > 255) { ihue = 0; } leds[idex] = CHSV(ihue, thissat, 255); LEDS.show(); delay(thisdelay); void rainbow_loop Flicker time_flicker 078467be-1809-4236-b47b-960d6a43a3d5 9860af04-ca85-4b80-8bc0-b9119352afcc 59fb3510-6e41-4f15-9a95-3672356e4fd4 Эффект STRIP FLICKER LED_COUNT 74564eaf-0ff0-43b3-9cf9-900b92802e49 0b9c4552-377b-4543-973d-36e67c62bff7 if ( Flicker ) { thisdelay = time_flicker; thissat = 50; flicker(); } idex++; if (idex >= LED_COUNT) { idex = 0; } int idexR = idex; int idexB = antipodal_index(idexR); int thathue = (thishue + 160) % 255; leds[idexR] = CHSV(thishue, thissat, 255); leds[idexB] = CHSV(thathue, thissat, 255); LEDS.show(); delay(thisdelay); void ems_lightsALL 610@800 corner: 630@820 610@790 Effect_PULSE COLOR SATURATION Pulse_one_color_all_rev 0646488d-32d6-4d41-ac78-79974d7e2d17 Эффект PULSE COLOR SATURATION Ставится блок между главным и последними блоками. Входы: Pulse_one_color_all_rev - включение блока; time_ocar - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thishue, Isat - меняя значения этих параметров можно задавать другие цвета. Thishue 73a4f080-0399-4548-a2a2-6ad024c87b27 3aaf2557-8137-407b-8f93-ad841fc9ed3c if ( Pulse_one_color_all_rev) { thisdelay = time_ocar; thishue = Thishue; pulse_one_color_all_rev(); } 145 if (bouncedirection == 0) { isat++; if (isat >= 255) { bouncedirection = 1; } } if (bouncedirection == 1) { isat = isat - 1; if (isat <= 1) { bouncedirection = 0; } } for (int idex = 0 ; idex < LED_COUNT; idex++ ) { leds[idex] = CHSV(thishue, isat, 255); } LEDS.show(); delay(thisdelay); 343 void pulse_one_color_all_rev 630@790 500@400 corner: 500@790 Q9 480@400 500@400 480@390 corner: 500@410 500@280 Q3 480@280 500@280 corner: 500@390 Color_bounce 610@390 630@390 610@380 corner: 630@400 time_cl 610@410 630@410 596.0d@413.5d 610@400 corner: 630@420 Effect_BOUNCE COLOR 8a45c6d5-5e47-4021-a795-6b7f95d87950 Эффект BOUNCE COLOR Ставится блок между главным и последними блоками. Входы: Color_bounce - включение блока; time_cl - скорость выполнения эффекта. Параметры: LED_COUNT - количество светодиодов в ленте. Thishue , Thissat - меняя значения этих параметров можно задавать другие цвета. Thishue daaa6bed-aeca-429f-ab21-261722529a80 26945cd9-2491-4d4e-9da9-8cf7493f9932 Thissat d540f45a-4112-4332-b184-8f10e39a9081 ed10ed3a-46b3-4ceb-a4af-08c998604ff3 if ( Color_bounce ) { thisdelay = time_cl ; thishue = Thishue; thissat = Thissat; color_bounce(); } 135 if (bouncedirection == 0) { idex = idex + 1; if (idex == LED_COUNT) { bouncedirection = 1; idex = idex - 1; } } if (bouncedirection == 1) { idex = idex - 1; if (idex == 0) { bouncedirection = 0; } } for (int i = 0; i < LED_COUNT; i++ ) { if (i == idex) { leds[i] = CHSV(thishue, thissat, 255); } else { leds[i] = CHSV(0, 0, 0); } } LEDS.show(); delay(thisdelay); 448 void color_bounce 25 610@0 630@0 corner: 775.0d@60 610@0 corner: 795.0d@60 635.0d@14.5d en_g 610@30 624@30 WS2812_Eff_Gyver_main ff84043f-248e-41ab-9e01-ee69e464ad45 d33a14d9-0b55-40cf-9dbf-1387189f8d25 brightness eb520ab3-b1eb-4c10-8133-28cfa0fd619b 5c8320ed-cb31-4afe-ab5a-55d2de2f1efc LedMode d7203749-7779-43ec-b213-cc01c0754a0f 2d1caead-279e-4ab3-8bab-dba56bedd7ce 02999e23-1989-47d2-a147-65901b336b31 Эффекты на WS2812 Гивера главный Входы: en_g - включение блока; brightness - яркость; LedMode - стартовый режим: 0 - все выключены 1 - все включены 3 - кольцевая радуга 888 - демо-режим Параметры: LED_COUNT - количество светодиодов; LED_DT - вывод, куда подключен DIN ленты 278 LED_COUNT 118101c3-0d16-469f-9bfb-66b196c7417a aae27e5e-6f22-4607-86a0-eb91d4253e96 LED_DT 66eb2176-a6af-48a0-b401-4c340f72eab9 44d2d881-4390-4861-9307-49a2058df461 if (en_g) { LEDS.setBrightness(brightness); if (Serial.available() > 0) { // если что то прислали ledMode = Serial.parseInt(); // парсим в тип данных int change_mode(ledMode); // меняем режим через change_mode (там для каждого режима стоят цвета и задержки) } else { ledMode = LedMode; change_mode(ledMode); } switch (ledMode) { case 999: break; // пауза 439 Serial.begin(9600); LEDS.setBrightness( brightness ); LEDS.addLeds<WS2811, LED_DT, GRB>(leds, LED_COUNT); one_color_all(0, 0, 0); LEDS.show(); 154 библиотека для работы с лентой #include "FastLED.h" ledMode = LedMode ; int /* Стартовый режим 0 - все выключены 1 - все включены 3 - кольцевая радуга 888 - демо-режим */ цвета мячиков для режима ballColors [3][3] = { {0xff, 0, 0}, {0xff, 0xff, 0xff}, {0 , 0 , 0xff}, }; byte светодиод начала отсчёта BOTTOM_INDEX = 0; int TOP_INDEX = int(LED_COUNT / 2); int EVENODD = LED_COUNT % 2; int leds [LED_COUNT]; CRGB -ARRAY FOR COPYING WHATS IN THE LED STRIP CURRENTLY (FOR CELL-AUTOMATA, MARCH, ETC) ledsX [LED_COUNT][3]; int -FX LOOPS DELAY VAR thisdelay = 20; int -FX LOOPS DELAY VAR thisstep = 10; int -FX LOOPS DELAY VAR thishue = 0; int -FX LOOPS DELAY VAR thissat = 255; int thisindex = 0; int thisRED = 0; int thisGRN = 0; int thisBLU = 0; int -LED INDEX (0 to LED_COUNT-1 idex = 0; int -HUE (0-255) ihue = 0; int -BRIGHTNESS (0-255) ibright = 0; int -SATURATION (0-255) isat = 0; int -SWITCH FOR COLOR BOUNCE (0-1) bouncedirection = 0; int -INC VAR FOR SIN LOOPS tcount = 0.0; float -ANOTHER COUNTING VAR lcount = 0; int for (int i = 0 ; i < LED_COUNT; i++ ) { leds[i].setRGB( cred, cgrn, cblu); } 82 void one_color_all int cred int cgrn int cblu //-SET ALL LEDS TO ONE COLOR (HSV) for (int i = 0 ; i < LED_COUNT; i++ ) { leds[i] = CHSV(ahue, thissat, 255); } 121 void one_color_allHSV int ahue thissat = 255; switch (newmode) { case 0: one_color_all(0, 0, 0); LEDS.show(); break; //---ALL OFF case 1: one_color_all(255, 255, 255); LEDS.show(); break; //---ALL ON case 2: thisdelay = 20; break; //---STRIP RAINBOW FADE case 3: thisdelay = 20; thisstep = 10; break; //---RAINBOW LOOP case 4: thisdelay = 20; break; //---RANDOM BURST case 5: thisdelay = 20; thishue = 0; break; //---CYLON v1 case 6: thisdelay = 40; thishue = 0; break; //---CYLON v2 case 7: thisdelay = 40; thishue = 0; break; //---POLICE LIGHTS SINGLE case 8: thisdelay = 40; thishue = 0; break; //---POLICE LIGHTS SOLID case 9: thishue = 160; thissat = 50; break; //---STRIP FLICKER case 10: thisdelay = 15; thishue = 0; break; //---PULSE COLOR BRIGHTNESS case 11: thisdelay = 15; thishue = 0; break; //---PULSE COLOR SATURATION case 12: thisdelay = 60; thishue = 180; break; //---VERTICAL SOMETHING case 13: thisdelay = 100; break; //---CELL AUTO - RULE 30 (RED) case 14: thisdelay = 40; break; //---MARCH RANDOM COLORS case 15: thisdelay = 80; break; //---MARCH RWB COLORS case 16: thisdelay = 60; thishue = 95; break; //---RADIATION SYMBOL //---PLACEHOLDER FOR COLOR LOOP VAR DELAY VARS case 19: thisdelay = 35; thishue = 180; break; //---SIN WAVE BRIGHTNESS case 20: thisdelay = 100; thishue = 0; break; //---POP LEFT/RIGHT case 21: thisdelay = 100; thishue = 180; break; //---QUADRATIC BRIGHTNESS CURVE //---PLACEHOLDER FOR FLAME VARS case 23: thisdelay = 50; thisstep = 15; break; //---VERITCAL RAINBOW case 24: thisdelay = 50; break; //---PACMAN case 25: thisdelay = 35; break; //---RANDOM COLOR POP case 26: thisdelay = 25; thishue = 0; break; //---EMERGECNY STROBE case 27: thisdelay = 25; thishue = 0; break; //---RGB PROPELLER case 28: thisdelay = 100; thishue = 0; break; //---KITT case 29: thisdelay = 50; thishue = 95; break; //---MATRIX RAIN case 30: thisdelay = 5; break; //---NEW RAINBOW LOOP case 31: thisdelay = 100; break; //---MARCH STRIP NOW CCW case 32: thisdelay = 100; break; //---MARCH STRIP NOW CCW case 33: thisdelay = 50; break; // colorWipe case 34: thisdelay = 50; break; // CylonBounce case 35: thisdelay = 15; break; // Fire case 36: thisdelay = 50; break; // NewKITT case 37: thisdelay = 20; break; // rainbowCycle case 38: thisdelay = 10; break; // rainbowTwinkle case 39: thisdelay = 50; break; // RunningLights case 40: thisdelay = 0; break; // Sparkle case 41: thisdelay = 20; break; // SnowSparkle case 42: thisdelay = 50; break; // theaterChase case 43: thisdelay = 50; break; // theaterChaseRainbow case 44: thisdelay = 100; break; // Strobe case 101: one_color_all(255, 0, 0); LEDS.show(); break; //---ALL RED case 102: one_color_all(0, 255, 0); LEDS.show(); break; //---ALL GREEN case 103: one_color_all(0, 0, 255); LEDS.show(); break; //---ALL BLUE case 104: one_color_all(255, 255, 0); LEDS.show(); break; //---ALL COLOR X case 105: one_color_all(0, 255, 255); LEDS.show(); break; //---ALL COLOR Y case 106: one_color_all(255, 0, 255); LEDS.show(); break; //---ALL COLOR Z } bouncedirection = 0; one_color_all(0, 0, 0); ledMode = newmode; 3824 void change_mode int newmode 610@20 corner: 624@40 100 610@50 630@50 591.0d@53.5d 610@40 corner: 630@60 WS2812_Eff_Gyver_main_1 2d0a688e-3f53-440e-a9c9-41603c6c5b54 Эффекты на WS2812 Гивера главный_1 Создан на основе скетчей Алекса Гивера https://alexgyver.ru/ws2812b-fx/. Ставится блок первым, работает только с последним блоком. Между ними ставить блоки эффектов. Входы: en_g - включение блока; brightness - яркость; Параметры: LED_COUNT - количество светодиодов; LED_DT - вывод, куда подключен DIN ленты. Для плат ESP8266 Nodemcu и тп, если стоит LED_DT = 2, то подключать к D2 (и так аналогично для других выводов, библиотека так написана). Для голых ESP8266 с выводами в GPIO совпадают. aidar_i 15/12/2019 519 LED_COUNT 0bf96f67-5262-4d7e-b728-0a9dc47df8ae 84e66d63-ba89-45f6-b686-76b4af598d25 if (en_g) { LEDS.setBrightness(brightness); 51 LEDS.setBrightness( 100 ); LEDS.addLeds<WS2811, LED_DT, GRB>(leds, LED_COUNT); one_color_all(0, 0, 0); LEDS.show(); 127 библиотека для работы с лентой #include "FastLED.h" ballColors [3][3] = { {0xff, 0, 0}, {0xff, 0xff, 0xff}, {0 , 0 , 0xff}, }; byte светодиод начала отсчёта BOTTOM_INDEX = 0; int TOP_INDEX = int(LED_COUNT / 2); int EVENODD = LED_COUNT % 2; int leds [LED_COUNT]; CRGB -ARRAY FOR COPYING WHATS IN THE LED STRIP CURRENTLY (FOR CELL-AUTOMATA, MARCH, ETC) ledsX [LED_COUNT][3]; int -FX LOOPS DELAY VAR thisdelay = 20; int -FX LOOPS DELAY VAR thisstep = 10; int -FX LOOPS DELAY VAR thishue = 0; int -FX LOOPS DELAY VAR thissat = 255; int thisindex = 0; int thisRED = 0; int thisGRN = 0; int thisBLU = 0; int -LED INDEX (0 to LED_COUNT-1 idex = 0; int -HUE (0-255) ihue = 0; int -BRIGHTNESS (0-255) ibright = 0; int -SATURATION (0-255) isat = 0; int -SWITCH FOR COLOR BOUNCE (0-1) bouncedirection = 0; int -INC VAR FOR SIN LOOPS tcount = 0.0; float -ANOTHER COUNTING VAR lcount = 0; int leds[adex].setRGB( cred, cgrn, cblu); 39 void set_color_led int adex int cred int cgrn int cblu //-ONLY WORKS WITH INDEX < TOPINDEX if (i == BOTTOM_INDEX) { return BOTTOM_INDEX; } if (i == TOP_INDEX && EVENODD == 1) { return TOP_INDEX + 1; } if (i == TOP_INDEX && EVENODD == 0) { return TOP_INDEX; } return LED_COUNT - i; 253 int horizontal_index int i int iN = i + TOP_INDEX; if (i >= TOP_INDEX) { iN = ( i + TOP_INDEX ) % LED_COUNT; } return iN; 106 int antipodal_index int i int r; if (i < LED_COUNT - 1) { r = i + 1; } else { r = 0; } return r; 90 int adjacent_cw int i int r; if (i > 0) { r = i - 1; } else { r = LED_COUNT - 1; } return r; int adjacent_ccw int i for (int i = 0; i < LED_COUNT; i++ ) { ledsX[i][0] = leds[i].r; ledsX[i][1] = leds[i].g; ledsX[i][2] = leds[i].b; } 131 void copy_led_array leds[Pixel].r = red; leds[Pixel].g = green; leds[Pixel].b = blue; 71 void setPixel int Pixel byte red byte green byte blue for (int i = 0; i < LED_COUNT; i++ ) { setPixel(i, red, green, blue); } FastLED.show(); void setAll byte red byte green byte blue 145.0d 800@160 800@160 corner: 976.0d@181.0d left плавная смена цветов всей ленты 170.0d 3@13.0d 10.0d 800@230 800@230 corner: 898.0d@248.0d крутящаяся радуга 92.0d 3@10.0d 7.0d 790@300 790@300 corner: 918.0d@321.0d случайная смена цветов 3@13.0d 820@370 820@370 corner: 932.0d@391.0d бегающий светодиод 106.0d 3@13.0d 820@440 820@440 corner: 995.0d@461.0d бегающий паровозик светодиодов 169.0d 3@13.0d 810@510 810@510 corner: 958.0d@531.0d вращаются красный и синий 142.0d 3@13.0d 840@580 840@580 corner: 1085.0d@598.0d вращается половина красных и половина синих 239.0d 3@10.0d 840@650 840@650 corner: 961.0d@671.0d 8 случайный стробоскоп 115.0d 3@13.0d 830@720 830@720 corner: 961.0d@738.0d пульсация одним цветом 3@10.0d 840@790 840@790 corner: 990.0d@811.0d пульсация со сменой цветов 144.0d 3@13.0d 160@260 160@260 corner: 334.0d@281.0d вывод случайного числа от 0 до 9 168.0d 3@13.0d 790@20 790@20 corner: 863.0d@40.0d 12 главный блок 67.0d 3@12.0d 790@840 790@840 corner: 877.0d@860.0d последний блок 81.0d 3@12.0d 941.0d reset 9600 arduinoIDE 179 4096 ESP8266 NodeMcu v3 109802410