Guest User

Untitled

a guest
Aug 2nd, 2014
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 91.75 KB | None | 0 0
  1. #include <FastLED.h>
  2. #define NUM_LEDS 600
  3. #define DATA_PIN 51
  4. #define strips 10
  5. #include <Wire.h>
  6. #include <SPI.h>
  7. #include <RTClib.h>
  8. #include <RTC_DS1307.h>
  9. #include <EEPROM.h>
  10. RTC_DS1307 RTC;
  11.  
  12. CRGB leds[NUM_LEDS];
  13. int on = 1;
  14. int counter =0;
  15. int allLEDS[strips][60];
  16. int mode = 12;
  17. int globalR = EEPROM.read(0);
  18. int globalG = EEPROM.read(1);
  19. int globalB = EEPROM.read(2);
  20. int backR=EEPROM.read(3);
  21. int backG=EEPROM.read(4);
  22. int backB=EEPROM.read(5);
  23. int maxBrightness=100;
  24. int prevMax =0;
  25. int backGroundBrightness = 25;
  26. int myDelay = 20;
  27. //hsv
  28. int hsvCounter=0;
  29. //ball stuff
  30. int centerX = 10;
  31. int centerY=3;
  32. int directionX=1;
  33. int directionY=1;
  34. int yCounter = 0;
  35. int ballR;
  36. int ballG;
  37. int ballB;
  38. int prevRand=10000;
  39. int ballBR;
  40. int ballBG;
  41. int ballBB;
  42. //strobe
  43. int strobeNum = 2;
  44. int strobeNum1= 0;
  45. //color chase
  46. int chaseR = 255;
  47. int chaseG = 0;
  48. int chaseB = 0;
  49. int chaseR1 = 0;
  50. int chaseG1 = 255;
  51. int chaseB1 = 0;
  52. int chaseR2 = 0;
  53. int chaseG2 = 0;
  54. int chaseB2 = 255;
  55. int chaseCounter =0;
  56. //color cycle/flash
  57. int cycleNum = 0;
  58. int flashNum = 0;
  59. int flashCount = 0;
  60. int flashCount1 = 255;
  61. //middle expand
  62. int middleExpPos=30;
  63. int expR =0;
  64. int expG=0;
  65. int expB=0;
  66. //alien
  67. int alCount=0;
  68. int timeKeep = 0;
  69. int alMode = 1;
  70. //color forward/back
  71. int forwardOrBack = 0;
  72. int countF=0;
  73. int countB=0;
  74. //mario display vars
  75. int backOrForward=1;
  76. //message display vars
  77. DateTime now;
  78. int messageLines[3]={
  79. 2,2,1};
  80. char message11[8]={
  81. EEPROM.read(6),EEPROM.read(7),EEPROM.read(8),EEPROM.read(9),EEPROM.read(10),EEPROM.read(11),EEPROM.read(12),EEPROM.read(13)};
  82. char message12[8]={
  83. EEPROM.read(14),EEPROM.read(15),EEPROM.read(16),EEPROM.read(17),EEPROM.read(18),EEPROM.read(19),EEPROM.read(20),EEPROM.read(21)};
  84. char message21[8]={
  85. '','','','','','','','\0'};
  86. char message22[8]={
  87. '','','','','\0','\0','\0','\0'};
  88. char message31[8]={
  89. '','','','',' ','','',''};
  90. char message32[8]={
  91. ' ',' ',' ',' ',' ',' ',' ',' '};
  92. int currentMessage=2;
  93.  
  94.  
  95. void setup() {
  96. digitalWrite(8,HIGH);
  97. pinMode(8,OUTPUT);
  98. pinMode(7,OUTPUT);
  99. digitalWrite(7,LOW);
  100. Serial.begin(9600);
  101. FastLED.addLeds<NEOPIXEL,DATA_PIN>(leds,NUM_LEDS);
  102. Wire.begin();
  103. RTC.begin();
  104.  
  105. for(int i = 0;i<strips;i++){
  106. for(int j = 0;j<60;j++){
  107. if(i %2==0)
  108. allLEDS[i][j]=j+(i*60);
  109. else
  110. allLEDS[i][j]=(59-j)+(i*60);
  111. }
  112. }
  113. randomSeed(analogRead(8));
  114. FastLED.clear();
  115. int randNum = random(3);
  116. switch(randNum){//random clock colors on startup
  117. case 0:
  118. mode =20;
  119. break;
  120. case 1:
  121. mode = 21;
  122. break;
  123. case 2:
  124. mode = 22;
  125. break;
  126. }
  127. FastLED.clear();
  128. startup();
  129. }
  130.  
  131.  
  132. void loop(){
  133. now = RTC.now();
  134. switch(mode)
  135. {
  136. case 123:
  137. break;
  138. case 0 :
  139. matrixRun();
  140. break;
  141. case 1 ://american flag
  142. merica();
  143. break;
  144. case 2 : // clock
  145. FastLED.clear();
  146. clock(now.minute(),now.hour(),brightnessLimit(globalR),brightnessLimit(globalG),brightnessLimit(globalB));
  147. setBackground(backgroundLimit(backR),backgroundLimit(backG),backgroundLimit(backB));
  148. break;
  149. case 3://middle expansion
  150. expR = brightnessLimit(random(20,255));
  151. expG = brightnessLimit(random(20,255));
  152. expB = brightnessLimit(random(20,255));
  153. middleExpPos = 30;
  154. mode = 30;
  155. break;
  156. case 30://middle expansion
  157. middleExpand(expR,expG,expB);
  158. break;
  159. case 4://dtd
  160. FastLED.clear();
  161. dtd();
  162. setBackground(brightnessLimit(40),brightnessLimit(12),brightnessLimit(75));
  163. break;
  164. case 5://dtd with scrolling
  165. FastLED.clear();
  166. dtd();
  167. setBackground(brightnessLimit(40),brightnessLimit(12),brightnessLimit(75));
  168. mode = 111;
  169. break;
  170. case 6://custom message setting
  171. Serial.println(F("Change which preset message (1,2 or 3):"));
  172. while(!Serial.available());
  173. currentMessage = Serial.parseInt();
  174. delay(10);
  175. Serial.read();
  176. messageInterpret(currentMessage);
  177. FastLED.clear();
  178. mode = 7;
  179. break;
  180. case 7://custom message display
  181. FastLED.clear();
  182. messagePrint();
  183. setBackground(backgroundLimit(backR),backgroundLimit(backG),backgroundLimit(backB));
  184. break;
  185. case 8://all 1 color
  186. for(int i = 0;i<NUM_LEDS;i++)
  187. {
  188. leds[i].setRGB(brightnessLimit(globalR),brightnessLimit(globalG),brightnessLimit(globalB));
  189. }
  190. FastLED.show();
  191. break;
  192. case 10://mario
  193. FastLED.clear();
  194. mario();
  195. mode=1000;
  196. break;
  197. case 1000:
  198. shellBounce();
  199. break;
  200. case 11://color fade
  201. FastLED.clear();
  202. mode=1100;
  203. break;
  204. case 1100:
  205. colorCycle();
  206. break;
  207. case 12://color flash
  208. FastLED.clear();
  209. mode=1200;
  210. flashCount =0;
  211. flashCount1 = brightnessLimit(255);
  212. break;
  213. case 1200:
  214. colorFlash();
  215. break;
  216. case 13:
  217. FastLED.clear();
  218. FastLED.show();
  219. mode = 1300;
  220. break;
  221. case 1300://color follow
  222. if (forwardOrBack==0){
  223. if(countF==0)leds[0].setRGB(brightnessLimit(150),0,brightnessLimit(random(220)));
  224. else if(countF==2)leds[0].setRGB(brightnessLimit(random(220)),0,brightnessLimit(150));
  225. else if(countF==1)leds[0].setRGB(brightnessLimit(random(220)),brightnessLimit(140),brightnessLimit(0));
  226. }
  227. else{
  228. if(countB==0)leds[NUM_LEDS-1].setRGB(brightnessLimit(0),brightnessLimit(140),brightnessLimit(random(220)));
  229. else if(countB==1) leds[NUM_LEDS-1].setRGB(brightnessLimit(0),brightnessLimit(random(220)),brightnessLimit(150));
  230. else if(countB==2) leds[NUM_LEDS-1].setRGB(brightnessLimit(150),brightnessLimit(random(220)),brightnessLimit(0));
  231. }
  232. mode = 1301;
  233. break;
  234. case 1301:
  235. if(forwardOrBack == 0){
  236. forwardFollow();
  237. if(leds[0]==leds[NUM_LEDS-1]){
  238. forwardOrBack=1;
  239. countF++;
  240. if(countF>2)countF=0;
  241. mode = 1300;
  242. }
  243. }
  244. else if(forwardOrBack == 1){
  245. backFollow();
  246. if(leds[0]==leds[NUM_LEDS-1]){
  247. forwardOrBack=0;
  248. mode = 1300;
  249. countB++;
  250. if(countB>2)countB=0;
  251. }
  252. }
  253. break;
  254. case 14:
  255. FastLED.clear();
  256. FastLED.show();
  257. alMode = 3;
  258. mode = 1400;
  259. break;
  260. case 1400:
  261. alienSelect();
  262. break;
  263. case 15:
  264. centerX=random(5,55);
  265. centerY=random(1,7);
  266. mode = 1500;
  267. prevRand=random(3);
  268. switch(prevRand){
  269. case 0:
  270. ballR=brightnessLimit(255);
  271. ballG=0;
  272. ballB=0;
  273. break;
  274. case 1:
  275. ballR=0;
  276. ballG=brightnessLimit(255);
  277. ballB=0;
  278. break;
  279. case 2:
  280. ballR=0;
  281. ballG=0;
  282. ballB=brightnessLimit(255);
  283. break;
  284. }
  285. ballBR = 0;
  286. ballBG = 0;
  287. ballBB = 0;
  288. break;
  289. case 1500:
  290. FastLED.clear();
  291. ballBounce();
  292. break;
  293. //PROBLEM HERE
  294. case 18://goes to 1600
  295. chaseCounter = 0;
  296. chaseR = 255;
  297. chaseG = 0;
  298. chaseB = 0;
  299. chaseR1 = 0;
  300. chaseG1 = 255;
  301. chaseB1 = 0;
  302. chaseR2 = 0;
  303. chaseG2 = 0;
  304. chaseB2 = 255;
  305. myDelay =20;
  306. mode = 1600;
  307. break;
  308. case 1600:
  309. colorChase();
  310. delay(myDelay);
  311. break;
  312. case 17://goes to 1600
  313. chaseCounter = 0;
  314. chaseR = 235;
  315. chaseG = 50;
  316. chaseB = 90;
  317. chaseR1 = 60;
  318. chaseG1 = 255;
  319. chaseB1 = 40;
  320. chaseR2 = 27;
  321. chaseG2 = 89;
  322. chaseB2 = 244;
  323. myDelay =20;
  324. mode = 1600;
  325. break;
  326. case 16://goes to 1600
  327. chaseCounter = 0;
  328. chaseR2 = 170;
  329. chaseG2 = 64;
  330. chaseB2 = 255;
  331. chaseR1 = 40;
  332. chaseG1 = 255;
  333. chaseB1 = 80;
  334. chaseR = 254;
  335. chaseG = 126;
  336. chaseB = 20;
  337. myDelay =20;
  338. mode = 1600;
  339. break;
  340. //END PROBLEM
  341.  
  342. case 19: //rain
  343. rainRun();
  344. break;
  345. case 20:// preset blue clock red background
  346. FastLED.clear();
  347. clock(now.minute(),now.hour(),brightnessLimit(39),brightnessLimit(135),brightnessLimit(232));
  348. setBackground(brightnessLimit(backgroundLimit(254)),brightnessLimit(backgroundLimit(126)),brightnessLimit(backgroundLimit(42)));
  349. break;
  350. case 21:// preset pink clock green background
  351. FastLED.clear();
  352. clock(now.minute(),now.hour(),brightnessLimit(195),brightnessLimit(26),brightnessLimit(76));
  353. setBackground(brightnessLimit(backgroundLimit(60)),brightnessLimit(backgroundLimit(255)),brightnessLimit(backgroundLimit(40)));
  354. break;
  355. case 22://preset tan clock purple background
  356. FastLED.clear();
  357. clock(now.minute(),now.hour(),brightnessLimit(254),brightnessLimit(126),brightnessLimit(42));
  358. setBackground(brightnessLimit(backgroundLimit(150)),brightnessLimit(backgroundLimit(64)),brightnessLimit(backgroundLimit(255)));
  359. break;
  360. case 23:
  361. myDelay = 500;
  362. mode = 2300;
  363. break;
  364. case 24:
  365. strobe1();
  366. break;
  367. case 25://rainbow
  368. rainbowDisplay();
  369. FastLED.show();
  370. mode = 111;
  371. break;
  372. case 2300:
  373. strobe();
  374. break;
  375. case 111://scrolling effect
  376. myDelay = 50;
  377. mode = 1110;
  378. break;
  379. case 1110://scrolling effect
  380. scrollText();
  381. break;
  382. default :
  383. break;
  384. }
  385. Serial.println(freeRam());
  386.  
  387. if(Serial.available()){
  388. char inputChar;
  389. inputChar = Serial.read();
  390. // Serial.println(inputChar);
  391. Serial.read();
  392. if(inputChar=='o')//o for on
  393. {
  394. on = 1;
  395. digitalWrite(8,LOW);
  396. }
  397. else if(inputChar=='O')//O for off
  398. {
  399. digitalWrite(7,HIGH);
  400. on = 0;
  401. mode =123;
  402. FastLED.clear();
  403. FastLED.show();
  404. if(EEPROM.read(0)!=globalR) EEPROM.write(0,globalR);
  405. if(EEPROM.read(1)!=globalG) EEPROM.write(1,globalG);
  406. if(EEPROM.read(2)!=globalB) EEPROM.write(2,globalB);
  407. if(EEPROM.read(3)!=backR) EEPROM.write(3,backR);
  408. if(EEPROM.read(4)!=backG) EEPROM.write(4,backG);
  409. if(EEPROM.read(5)!=backB) EEPROM.write(5,backB);
  410. for(int i = 6;i<14;i++){
  411. if(EEPROM.read(i)!=message11[i-6]) EEPROM.write(i,message11[i-6]);
  412. }
  413. for(int i = 14;i<22;i++){
  414. if(EEPROM.read(i)!=message12[i-14]) EEPROM.write(i,message12[i-14]);
  415. }
  416. }
  417.  
  418. else if(on ==1){
  419. if(inputChar==104)//h for help
  420. {
  421. startup();
  422. }
  423. else if (inputChar ==108){//l for list of modes
  424. modeList();
  425. }
  426. else if (inputChar ==112){//p for pretty colors
  427. colors();
  428. }
  429. else{
  430.  
  431. Serial.println(F("Enter Parameters"));
  432.  
  433. while(!Serial.available()){
  434. }
  435. switch(inputChar){
  436. case 109://m for mode
  437. mode = Serial.parseInt();
  438. // Serial.println(mode);
  439. break;
  440. case 98://b for background
  441. backR=brightnessLimit(Serial.parseInt());
  442. backG=brightnessLimit(Serial.parseInt());
  443. backB=brightnessLimit(Serial.parseInt());
  444. break;
  445.  
  446. case 99://c for color
  447. globalR=brightnessLimit(Serial.parseInt());
  448. globalG=brightnessLimit(Serial.parseInt());
  449. globalB=brightnessLimit(Serial.parseInt());
  450. break;
  451. case 100://d for delay
  452. myDelay = Serial.parseInt();
  453. // Serial.println(myDelay);
  454. break;
  455. case 115://s for set display message
  456. currentMessage = Serial.parseInt();
  457. // Serial.println(myDelay);
  458. break;
  459. case 105://i for intensity of light
  460. maxBrightness = Serial.parseInt();
  461. // Serial.println(maxBrightness);
  462. break;
  463. case 122://z for background brightness
  464. backGroundBrightness = Serial.parseInt();
  465. break;
  466. default:
  467. break;
  468. }
  469. Serial.read();
  470. }
  471. }
  472. }
  473. }
  474.  
  475. //rainbow
  476. void rainbowDisplay(){
  477. for(int i = 0;i<strips;i++){
  478. for(int j = 0;j<60;j++){
  479. leds[allLEDS[i][j]].setHSV(j*4,255,brightnessLimit(255));
  480. }
  481. }
  482. }
  483. int freeRam () {
  484. extern int __heap_start, *__brkval;
  485. int v;
  486. return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
  487. }
  488. //strobe
  489. void strobe(){
  490. switch(strobeNum){
  491. case 0://red
  492. for(int i = 0;i<NUM_LEDS;i++)
  493. leds[i].setRGB(brightnessLimit(255),0,0);
  494. break;
  495. case 1://green
  496. for(int i = 0;i<NUM_LEDS;i++)
  497. leds[i].setRGB(0,brightnessLimit(255),0);
  498. break;
  499. case 2://blue
  500. for(int i = 0;i<NUM_LEDS;i++)
  501. leds[i].setRGB(0,0,brightnessLimit(255));
  502. break;
  503. case 3://pink
  504. for(int i = 0;i<NUM_LEDS;i++)
  505. leds[i].setRGB(brightnessLimit(248),brightnessLimit(35),brightnessLimit(94));
  506. break;
  507. case 4://light Green
  508. for(int i = 0;i<NUM_LEDS;i++)
  509. leds[i].setRGB(brightnessLimit(80),brightnessLimit(255),brightnessLimit(60));
  510. break;
  511. case 5://deep blue
  512. for(int i = 0;i<NUM_LEDS;i++)
  513. leds[i].setRGB(brightnessLimit(39),brightnessLimit(135),brightnessLimit(232));
  514. break;
  515. case 6://tan
  516. for(int i = 0;i<NUM_LEDS;i++)
  517. leds[i].setRGB(brightnessLimit(254),brightnessLimit(126),brightnessLimit(42));
  518. break;
  519. case 7://green
  520. for(int i = 0;i<NUM_LEDS;i++)
  521. leds[i].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  522. break;
  523. case 8://deep blue2
  524. for(int i = 0;i<NUM_LEDS;i++)
  525. leds[i].setRGB(brightnessLimit(27),brightnessLimit(89),brightnessLimit(244));
  526. strobeNum=-1;
  527. break;
  528. }
  529. strobeNum++;
  530. delay(myDelay);
  531. FastLED.show();
  532. }
  533.  
  534. void strobe1(){
  535. switch(strobeNum1){
  536. case 0://blue
  537. for(int i = 0;i<NUM_LEDS;i++)
  538. leds[i].setRGB(0,0,brightnessLimit(255));
  539. break;
  540. case 1://white
  541. for(int i = 0;i<NUM_LEDS;i++)
  542. leds[i].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  543. strobeNum1=-1;
  544. break;
  545. }
  546. strobeNum1++;
  547. delay(myDelay);
  548. FastLED.show();
  549. }
  550.  
  551.  
  552. //rain
  553. void rainRun(){
  554. rainInit();
  555. int bc = brightnessLimit(10);
  556. for(int i = 0;i<60;i++){
  557. if(leds[allLEDS[1][i]].b>bc)
  558. leds[allLEDS[0][i]].b=bc;
  559. }
  560. FastLED.show();
  561. rainFall();
  562. delay(50);
  563. }
  564.  
  565.  
  566. void rainInit(){
  567. int counter=0;
  568. int temp2 = random (60);
  569. int temp = 6;
  570. while(counter<temp){
  571. leds[temp2].setRGB(0,0,brightnessLimit(255));
  572. temp2 = random(60);
  573. counter++;
  574. }
  575. }
  576.  
  577.  
  578. void rainFall(){
  579. for(int i = strips-1;i>0;i--){
  580. for(int j =0;j<60;j++){
  581. leds[allLEDS[i][j]]=leds[allLEDS[i-1][j]];
  582. }
  583. }
  584. }
  585. //color chase
  586. void colorChase(){
  587. for(int i = NUM_LEDS;i>0;i--){
  588. leds[i]=leds[i-1];
  589. }
  590. if(chaseCounter%12 ==0 &&chaseCounter%12<3)
  591. leds[0].setRGB(brightnessLimit(chaseR),brightnessLimit(chaseG),brightnessLimit(chaseB));
  592. else if(chaseCounter%12==3||chaseCounter%12==7||chaseCounter%12==11)
  593. leds[0].setRGB(0,0,0);
  594. else if(chaseCounter%12>3&&chaseCounter%12<7){
  595. leds[0].setRGB(brightnessLimit(chaseR1),brightnessLimit(chaseG1),brightnessLimit(chaseB1));
  596. }
  597. else if(chaseCounter%12>7&&chaseCounter%12<11){
  598. leds[0].setRGB(brightnessLimit(chaseR2),brightnessLimit(chaseG2),brightnessLimit(chaseB2));
  599. }
  600. chaseCounter++;
  601. if(chaseCounter==600)chaseCounter=0;
  602. FastLED.show();
  603. }
  604.  
  605. //ball
  606. void ballBounce(){
  607. FastLED.clear();
  608. paddleDraw();
  609. ballDraw();
  610. setBackground(brightnessLimit(backgroundLimit(ballBR)),brightnessLimit(backgroundLimit(ballBG)),brightnessLimit(backgroundLimit(ballBB)));
  611. if(directionX==-1 && centerX <=3)
  612. directionX=1;
  613. if(directionX==1 &&centerX>=56)
  614. directionX=-1;
  615. if((directionY==-1) && centerY<=1)
  616. {
  617. directionY=1;
  618. }
  619. if(directionY==1 && centerY >=7)
  620. {
  621. directionY=-1;
  622. int temp = random(7);
  623. if (temp==prevRand){
  624. if (prevRand ==6) temp=prevRand-1;
  625. else temp =prevRand+1;
  626. }
  627. prevRand=temp;
  628. ballBR = ballR;
  629. ballBG = ballG;
  630. ballBB = ballB;
  631. switch(temp){
  632. case 0:
  633. ballR=235;
  634. ballG=36;
  635. ballB=90;
  636. break;
  637. case 1:
  638. ballR=255;
  639. ballG=0;
  640. ballB=0;
  641. break;
  642. case 2:
  643. ballR=0;
  644. ballG=255;
  645. ballB=0;
  646. break;
  647. case 3:
  648. ballR=0;
  649. ballG=0;
  650. ballB=255;
  651. break;
  652. case 4:
  653. ballR=254;
  654. ballG=105;
  655. ballB=42;
  656. break;
  657. case 5:
  658. ballR=131;
  659. ballG=34;
  660. ballB=255;
  661. break;
  662. default:
  663. ballR=100;
  664. ballG=255;
  665. ballB=0;
  666. break;
  667. }
  668. }
  669.  
  670. centerX+=directionX;
  671. if(yCounter%6==0) centerY+=directionY;
  672. {
  673. yCounter++;
  674. if(yCounter>=144)yCounter =0;
  675. }
  676.  
  677. delay(3);
  678. }
  679. void paddleDraw(){
  680. if(centerX==3)
  681. for(int i = 0;i<8;i++){
  682. leds[allLEDS[9][i]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  683. }
  684. else if(centerX==56)
  685. for(int i = 53;i<60;i++){
  686. leds[allLEDS[9][i]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  687. }
  688. else
  689. for(int i = centerX-4;i<centerX+5;i++)
  690. leds[allLEDS[9][i]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  691. }
  692. void ballDraw(){
  693. for(int i = centerY-1;i<centerY+2;i++){
  694.  
  695. if(i ==centerY-1)
  696. for(int j = centerX-2;j<centerX+3;j++)
  697. leds[allLEDS[i][j]].setRGB(brightnessLimit(ballR),brightnessLimit(ballG),brightnessLimit(ballB));
  698.  
  699. else if(i ==centerY)
  700. for(int j = centerX-3;j<centerX+4;j++)
  701. leds[allLEDS[i][j]].setRGB(brightnessLimit(ballR),brightnessLimit(ballG),brightnessLimit(ballB));
  702.  
  703. else if(i ==centerY+1)
  704. for(int j = centerX-2;j<centerX+3;j++)
  705. leds[allLEDS[i][j]].setRGB(brightnessLimit(ballR),brightnessLimit(ballG),brightnessLimit(ballB));
  706. }
  707. }
  708.  
  709.  
  710.  
  711. //alien
  712. void alienSelect(){
  713. int d = 1600;
  714. switch(alMode){
  715. case 0:
  716. alienBlink(120,0,255,d);
  717. break;
  718. case 1://image 1
  719. alienHead(1);
  720. alMode = 4;
  721. break;
  722. case 2://image 2
  723. alienHead(2);
  724. alMode = 4;
  725. break;
  726. case 3://image 3
  727. alienHead(3);
  728. alMode = 4;
  729. break;
  730. case 4://counting
  731. if(alCount==d) alMode =0;
  732. else if (alCount == d*2) alMode = 0;
  733. else if (alCount >= d*4) {
  734. alMode = 0;
  735. alCount = 0;
  736. }
  737. break;
  738. }
  739. alCount++;
  740. }
  741.  
  742. void alienBlink(int r, int g,int b, int d){
  743. int wait = 50;
  744. for(int j = 21;j<25;j++){
  745. leds[allLEDS[2][j]].setRGB(brightnessLimit(r),brightnessLimit(g),brightnessLimit(b));
  746. }
  747. for(int j = 34;j<38;j++){
  748. leds[allLEDS[2][j]].setRGB(brightnessLimit(r),brightnessLimit(g),brightnessLimit(b));
  749. }
  750. FastLED.show();
  751. delay(wait);
  752. for(int j = 21;j<25;j++){
  753. leds[allLEDS[3][j]].setRGB(brightnessLimit(r),brightnessLimit(b),brightnessLimit(b));
  754. }
  755. for(int j = 34;j<38;j++){
  756. leds[allLEDS[3][j]].setRGB(brightnessLimit(r),brightnessLimit(g),brightnessLimit(b));
  757. }
  758. FastLED.show();
  759. delay(wait+20);
  760. if(alCount<d)
  761. {
  762. alMode =1;
  763. leds[allLEDS[3][24]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  764. leds[allLEDS[3][37]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  765. for(int j = 21;j<24;j++){
  766. leds[allLEDS[3][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  767. }
  768. for(int j =34;j<37;j++){
  769. leds[allLEDS[3][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  770. }
  771. FastLED.show();
  772. }
  773. else if(alCount<d*2)
  774. {
  775. alMode = 2;
  776. leds[allLEDS[3][21]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  777. leds[allLEDS[3][34]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  778. for(int j = 22;j<25;j++){
  779. leds[allLEDS[3][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  780. }
  781. for(int j = 35;j<38;j++){
  782. leds[allLEDS[3][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  783. }
  784. FastLED.show();
  785. }
  786. else {
  787. alMode = 3;
  788. for(int j = 21;j<25;j++){
  789. leds[allLEDS[3][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  790. }
  791. for(int j = 34;j<38;j++){
  792. leds[allLEDS[3][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  793. }
  794. FastLED.show();
  795. }
  796. delay(wait);
  797. }
  798.  
  799.  
  800. void alienHead(int face){
  801. int sp = 20;
  802. int ep= sp+19;
  803. switch(face){
  804. case 1:
  805. for (int i = 0;i<strips;i++){
  806. switch(i){
  807. case 0:
  808. for(int j = sp-1;j<ep+1;j++){
  809. leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  810. }
  811. break;
  812. case 1:
  813. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  814. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  815. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  816. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  817. break;
  818. case 2:
  819. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  820. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  821. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  822. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  823. for(int j = sp+1;j<sp+5;j++){
  824. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  825. }
  826. for(int j = ep-5;j<ep-1;j++){
  827. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  828. }
  829. break;
  830. case 3:
  831. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  832. leds[allLEDS[i][sp-4]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  833. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  834. leds[allLEDS[i][ep+3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  835. leds[allLEDS[i][24]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  836. leds[allLEDS[i][37]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  837. for(int j = sp+1;j<sp+4;j++){
  838. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  839. }
  840. for(int j = ep-5;j<ep-2;j++){
  841. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  842. }
  843. break;
  844. case 4:
  845. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  846. leds[allLEDS[i][sp-4]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  847. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  848. leds[allLEDS[i][ep+3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  849. break;
  850. case 5:
  851. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  852. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  853. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  854. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  855. break;
  856. case 6:
  857. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  858. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  859. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  860. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  861. break;
  862. case 7:
  863. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  864. leds[allLEDS[i][sp]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  865. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  866. leds[allLEDS[i][ep-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  867. for(int j = sp+5;j<ep-5;j++){
  868. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  869. }
  870. break;
  871. case 8:
  872. leds[allLEDS[i][sp+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  873. leds[allLEDS[i][sp]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  874. leds[allLEDS[i][ep-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  875. leds[allLEDS[i][ep-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  876. break;
  877. case 9:
  878. for(int j = sp+1;j<ep-1;j++){
  879. leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  880. }
  881. break;
  882. }
  883. }
  884. break;
  885. case 2:
  886. for (int i = 0;i<strips;i++){
  887. switch(i){
  888. case 0:
  889. for(int j = sp-1;j<ep+1;j++){
  890. leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  891. }
  892. break;
  893. case 1:
  894. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  895. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  896. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  897. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  898. break;
  899. case 2:
  900. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  901. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  902. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  903. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  904. for(int j = sp+1;j<sp+5;j++){
  905. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  906. }
  907. for(int j = ep-5;j<ep-1;j++){
  908. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  909. }
  910. break;
  911. case 3:
  912. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  913. leds[allLEDS[i][sp-4]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  914. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  915. leds[allLEDS[i][ep+3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  916. leds[allLEDS[i][21]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  917. leds[allLEDS[i][34]].setRGB(brightnessLimit(0),brightnessLimit(0),brightnessLimit(0));
  918. for(int j = sp+2;j<sp+5;j++){
  919. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  920. }
  921. for(int j = ep-4;j<ep-1;j++){
  922. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  923. }
  924. break;
  925. case 4:
  926. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  927. leds[allLEDS[i][sp-4]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  928. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  929. leds[allLEDS[i][ep+3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  930. break;
  931. case 5:
  932. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  933. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  934. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  935. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  936. break;
  937. case 6:
  938. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  939. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  940. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  941. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  942. break;
  943. case 7:
  944. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  945. leds[allLEDS[i][sp]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  946. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  947. leds[allLEDS[i][ep-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  948. for(int j = sp+5;j<ep-5;j++){
  949. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  950. }
  951. break;
  952. case 8:
  953. leds[allLEDS[i][sp+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  954. leds[allLEDS[i][sp]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  955. leds[allLEDS[i][ep-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  956. leds[allLEDS[i][ep-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  957. break;
  958. case 9:
  959. for(int j = sp+1;j<ep-1;j++){
  960. leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  961. }
  962. break;
  963. }
  964. }
  965. break;
  966. case 3:
  967. for (int i = 0;i<strips;i++){
  968. switch(i){
  969. case 0:
  970. for(int j = sp-1;j<ep+1;j++){
  971. leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  972. }
  973. break;
  974. case 1:
  975. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  976. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  977. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  978. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  979. break;
  980. case 2:
  981. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  982. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  983. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  984. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  985. for(int j = sp+1;j<sp+5;j++){
  986. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  987. }
  988. for(int j = ep-5;j<ep-1;j++){
  989. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  990. }
  991. break;
  992. case 3:
  993. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  994. leds[allLEDS[i][sp-4]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  995. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  996. leds[allLEDS[i][ep+3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  997. for(int j = sp+1;j<sp+5;j++){
  998. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  999. }
  1000. for(int j = ep-5;j<ep-1;j++){
  1001. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  1002. }
  1003. break;
  1004. case 4:
  1005. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1006. leds[allLEDS[i][sp-4]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1007. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1008. leds[allLEDS[i][ep+3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1009. break;
  1010. case 5:
  1011. leds[allLEDS[i][sp-3]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1012. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1013. leds[allLEDS[i][ep+2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1014. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1015. break;
  1016. case 6:
  1017. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1018. leds[allLEDS[i][sp-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1019. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1020. leds[allLEDS[i][ep+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1021. break;
  1022. case 7:
  1023. leds[allLEDS[i][sp-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1024. leds[allLEDS[i][sp]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1025. leds[allLEDS[i][ep]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1026. leds[allLEDS[i][ep-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1027. for(int j = sp+5;j<ep-5;j++){
  1028. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  1029. }
  1030. break;
  1031. case 8:
  1032. leds[allLEDS[i][sp+1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1033. leds[allLEDS[i][sp]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1034. leds[allLEDS[i][ep-2]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1035. leds[allLEDS[i][ep-1]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1036. break;
  1037. case 9:
  1038. for(int j = sp+1;j<ep-1;j++){
  1039. leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1040. }
  1041. break;
  1042. }
  1043. }
  1044. break;
  1045. }
  1046. FastLED.show();
  1047. }
  1048.  
  1049.  
  1050. void forwardFollow(){
  1051. for(int i = NUM_LEDS-1;i>0;i--){
  1052. leds[i]=leds[i-1];
  1053. }
  1054. FastLED.show();
  1055. }
  1056.  
  1057.  
  1058. void backFollow(){
  1059. for(int i = 0;i<NUM_LEDS-1;i++){
  1060. leds[i]=leds[i+1];
  1061. }
  1062. FastLED.show();
  1063. }
  1064.  
  1065.  
  1066. //color flash
  1067. void colorFlash(){
  1068. switch(flashNum){
  1069. case 0://red
  1070. if(flashTransitionUp(brightnessLimit(255),0,0))flashNum=10;
  1071. break;
  1072. case 1://green
  1073. if(flashTransitionUp(0,brightnessLimit(255),0))flashNum=11;
  1074. break;
  1075. case 2://blue
  1076. if(flashTransitionUp(0,0,brightnessLimit(255)))flashNum=21;
  1077. break;
  1078. case 3://violet
  1079. if(flashTransitionUp(brightnessLimit(248),brightnessLimit(75),brightnessLimit(226)))flashNum=31;
  1080. break;
  1081. case 4://tan
  1082. if(flashTransitionUp(brightnessLimit(254),brightnessLimit(126),brightnessLimit(42)))flashNum=41;
  1083. break;
  1084. case 5://light Green
  1085. if(flashTransitionUp(brightnessLimit(80),brightnessLimit(255),brightnessLimit(60)))flashNum=51;
  1086. break;
  1087. case 6://yellow
  1088. if(flashTransitionUp(brightnessLimit(255),brightnessLimit(255),brightnessLimit(0)))flashNum=61;
  1089. break;
  1090. case 7://deep blue
  1091. if(flashTransitionUp(brightnessLimit(39),brightnessLimit(135),brightnessLimit(232)))flashNum=71;
  1092. break;
  1093. case 10://red
  1094. if(flashTransitionDown(brightnessLimit(255),0,0))flashNum=1;
  1095. break;
  1096. case 11://green
  1097. if(flashTransitionDown(0,brightnessLimit(255),0))flashNum=2;
  1098. break;
  1099. case 21://blue
  1100. if(flashTransitionDown(0,0,brightnessLimit(255)))flashNum=3;
  1101. break;
  1102. case 31://violet
  1103. if(flashTransitionDown(brightnessLimit(248),brightnessLimit(75),brightnessLimit(226)))flashNum=4;
  1104. break;
  1105. case 41://tan
  1106. if(flashTransitionDown(brightnessLimit(254),brightnessLimit(126),brightnessLimit(42)))flashNum=5;
  1107. break;
  1108. case 51://light Green
  1109. if(flashTransitionDown(brightnessLimit(80),brightnessLimit(255),brightnessLimit(60)))flashNum=6;
  1110. break;
  1111. case 61://yellow
  1112. if(flashTransitionDown(brightnessLimit(255),brightnessLimit(255),brightnessLimit(0)))flashNum=7;
  1113. break;
  1114. case 71://deep blue
  1115. if(flashTransitionDown(brightnessLimit(39),brightnessLimit(135),brightnessLimit(232)))flashNum=0;
  1116. break;
  1117. }
  1118. if(maxBrightness<110) delay(10);
  1119. FastLED.show();
  1120. }
  1121.  
  1122.  
  1123. void colorCycle(){
  1124. switch(cycleNum){
  1125. case 0://red
  1126. if(colorTransition(brightnessLimit(255),0,0))cycleNum=1;
  1127. break;
  1128. case 1://green
  1129. if(colorTransition(0,brightnessLimit(255),0))cycleNum=2;
  1130. break;
  1131. case 2://blue
  1132. if(colorTransition(0,0,brightnessLimit(255)))cycleNum=3;
  1133. break;
  1134. case 3://violet
  1135. if(colorTransition(brightnessLimit(208),brightnessLimit(75),brightnessLimit(226)))cycleNum=4;
  1136. break;
  1137. case 4://tan
  1138. if(colorTransition(brightnessLimit(254),brightnessLimit(126),brightnessLimit(42)))cycleNum=5;
  1139. break;
  1140. case 5://light Green
  1141. if(colorTransition(brightnessLimit(80),brightnessLimit(255),brightnessLimit(60)))cycleNum=6;
  1142. break;
  1143. case 6://yellow
  1144. if(colorTransition(brightnessLimit(255),brightnessLimit(255),brightnessLimit(0)))cycleNum=0;
  1145. break;
  1146. }
  1147. if(maxBrightness<110) delay(10);
  1148. FastLED.show();
  1149. }
  1150.  
  1151.  
  1152. int colorTransition(int r, int g, int b){
  1153. for(int i = 0;i<NUM_LEDS;i++){
  1154. if(leds[i].r>r)leds[i].r--;
  1155. else if(leds[i].r<r)leds[i].r++;
  1156. if(leds[i].g>g)leds[i].g--;
  1157. else if(leds[i].g<g)leds[i].g++;
  1158. if(leds[i].b>b)leds[i].b--;
  1159. else if(leds[i].b<b)leds[i].b++;
  1160. }
  1161. if(leds[0].r==r&&leds[0].g==g&&leds[0].b==b)return 1;
  1162. else return 0;
  1163. }
  1164.  
  1165.  
  1166. int flashTransitionUp(int r, int g, int b){
  1167. int var = 2;
  1168. int largestVal;
  1169. int newR,newB,newG;
  1170. if(max(r,g)==r){
  1171. if(max(r,b)==r) largestVal=r;
  1172. else largestVal=b;
  1173. }
  1174. else{
  1175. if (max(g,b)==g)largestVal=g;
  1176. else largestVal=b;
  1177. }
  1178. flashCount++;
  1179. newR=map(flashCount,0,largestVal,0,r);
  1180. newG=map(flashCount,0,largestVal,0,g);
  1181. newB=map(flashCount,0,largestVal,0,b);
  1182. for(int i = 0;i<NUM_LEDS;i++){
  1183. leds[i].setRGB(newR,newG,newB);
  1184. }
  1185. if(leds[0].r==r&&leds[0].g==g&&leds[0].b==b){
  1186. flashCount = 0;
  1187. return 1;
  1188. }
  1189. else return 0;
  1190. }
  1191.  
  1192.  
  1193. int flashTransitionDown(int r, int g, int b){
  1194. int var = 2;
  1195. int largestVal;
  1196. int newR,newB,newG;
  1197. if(max(r,g)==r){
  1198. if(max(r,b)==r) largestVal=r;
  1199. else largestVal=b;
  1200. }
  1201. else{
  1202. if (max(g,b)==g)largestVal=g;
  1203. else largestVal=b;
  1204. }
  1205. newR=map(flashCount1,0,largestVal,0,r);
  1206. newG=map(flashCount1,0,largestVal,0,g);
  1207. newB=map(flashCount1,0,largestVal,0,b);
  1208. if(flashCount1>2)
  1209. flashCount1-=2;
  1210. else flashCount1--;
  1211. for(int i = 0;i<NUM_LEDS;i++){
  1212. leds[i].setRGB(newR,newG,newB);
  1213. }
  1214. if(leds[0].r==0&&leds[0].g==0&&leds[0].b==0){
  1215. flashCount1 = brightnessLimit(255);
  1216. return 1;
  1217. }
  1218. else return 0;
  1219. }
  1220.  
  1221.  
  1222. //american flag
  1223. void merica(){
  1224. int r = brightnessLimit(255);
  1225. int g = brightnessLimit(255);
  1226. int b = brightnessLimit(255);
  1227. for(int i = 0;i<5;i++){
  1228. for(int j = 0;j<60;j++){
  1229. if(j<20){
  1230. if(j==0 ||j == 19)
  1231. leds[allLEDS[i][j]].setRGB(0,0,b);
  1232.  
  1233. else if(j%2==0)
  1234. {
  1235. if(i%2==0)
  1236. leds[allLEDS[i][j]].setRGB(r,g,b);
  1237. else
  1238. leds[allLEDS[i][j]].setRGB(0,0,b);
  1239. }
  1240. else{
  1241. if(i%2==0)
  1242. leds[allLEDS[i][j]].setRGB(0,0,b);
  1243. else
  1244. leds[allLEDS[i][j]].setRGB(r,g,b);
  1245. }
  1246. }
  1247.  
  1248. else{
  1249. if(i%2 == 0)
  1250. leds[allLEDS[i][j]].setRGB(r,0,0);
  1251. else
  1252. leds[allLEDS[i][j]].setRGB(r,g,b);
  1253.  
  1254. }
  1255.  
  1256. }
  1257. }
  1258. for(int i = 5;i<strips;i++){
  1259. for(int j = 0;j<60;j++){
  1260. if(i%2==0)
  1261. leds[allLEDS[i][j]].setRGB(r,0,0);
  1262. else
  1263. leds[allLEDS[i][j]].setRGB(r,g,b);
  1264. }
  1265.  
  1266. }
  1267. FastLED.show();
  1268. }
  1269.  
  1270. void windFlap(int start){
  1271. for(int k = 0;k<3;k++){
  1272. for(int i = 0;i<strips;i++){
  1273. leds[allLEDS[i][start-1]].maximizeBrightness();
  1274. if(k==1)
  1275. leds[allLEDS[i][start-1]]%=84;
  1276. if(k==2)
  1277. leds[allLEDS[i][start-1]]%=169;
  1278. for(int j = start;j<(start+12);j++){
  1279. if(j-start>4)
  1280. {
  1281. leds[allLEDS[i][j%60]]%=204;
  1282. }
  1283. else if(j-start>8){
  1284.  
  1285. leds[allLEDS[i][j%60]]%=179;
  1286. }
  1287. else{
  1288. leds[allLEDS[i][j%60]]%=204;
  1289. }
  1290. }
  1291. }
  1292. FastLED.show();
  1293. }
  1294. }
  1295.  
  1296.  
  1297. void middleExpand(int r, int g, int b){
  1298.  
  1299. if(middleExpPos>=0){
  1300. for(int i = 0;i<strips;i++)
  1301. {
  1302. leds[allLEDS[i][middleExpPos]].setRGB(r,g,b);
  1303. leds[allLEDS[i][59-middleExpPos]].setRGB(r,g,b);
  1304. }
  1305. FastLED.show();
  1306. delay(myDelay);
  1307. }
  1308. middleExpPos--;
  1309. if(middleExpPos<0) mode=3;
  1310. }
  1311.  
  1312.  
  1313. //text interpreter
  1314. void messageInterpret(int presetNum){
  1315. Serial.println(F("Do you want to enter a 1 or 2 line message (input 1 or 2):"));
  1316. while(!Serial.available());
  1317. if(presetNum==1){
  1318. messageLines[presetNum-1]=Serial.parseInt();
  1319. Serial.println(F("current message 1:"));
  1320. for(int i = 0;i<sizeof(message11);i++){
  1321. Serial.print(message11[i]);
  1322. }
  1323. if(messageLines[presetNum-1]==2){
  1324. Serial.println("");
  1325. for(int i = 0;i<sizeof(message12);i++){
  1326. Serial.print(message12[i]);
  1327. }
  1328. }
  1329. }
  1330. if(presetNum==2){
  1331. messageLines[presetNum-1]=Serial.parseInt();
  1332. Serial.println(F("current message 2:"));
  1333. for(int i = 0;i<sizeof(message21);i++){
  1334. Serial.print(message21[i]);
  1335. }
  1336. if(messageLines[presetNum-1]==2){
  1337. Serial.println("");
  1338. for(int i = 0;i<sizeof(message22);i++){
  1339. Serial.print(message22[i]);
  1340. }
  1341. }
  1342. }
  1343. if(presetNum==3){
  1344. messageLines[presetNum-1]=Serial.parseInt();
  1345. Serial.println(F("current message 3:"));
  1346. for(int i = 0;i<sizeof(message31);i++){
  1347. Serial.print(message31[i]);
  1348. }
  1349. if(messageLines[presetNum-1]==2){
  1350. Serial.println("");
  1351. for(int i = 0;i<sizeof(message32);i++){
  1352. Serial.print(message32[i]);
  1353. }
  1354. }
  1355. }
  1356. Serial.println("");
  1357. Serial.read();
  1358. if(messageLines[presetNum-1] ==1){
  1359. Serial.println(F("Enter your new message followed by a period (.):"));
  1360. while(!Serial.available());
  1361. switch(presetNum){
  1362. case 1:
  1363. memset(message11,'\0',sizeof(message11));
  1364. Serial.readBytesUntil('.',message11,10);
  1365. break;
  1366. case 2:
  1367. memset(message21,'\0',sizeof(message21));
  1368. Serial.readBytesUntil('.',message21,10);
  1369. break;
  1370. case 3:
  1371. memset(message31,'\0',sizeof(message31));
  1372. Serial.readBytesUntil('.',message31,10);
  1373. break;
  1374. }
  1375. }
  1376. else if(messageLines[presetNum-1] ==2){
  1377. Serial.println(F("Enter the first line of your message followed by a period (.):"));
  1378. while(!Serial.available());
  1379. switch(presetNum){
  1380. case 1:
  1381. memset(message11,'\0',sizeof(message11));
  1382. Serial.readBytesUntil('.',message11,10);
  1383. break;
  1384. case 2:
  1385. memset(message21,'\0',sizeof(message21));
  1386. Serial.readBytesUntil('.',message21,10);
  1387. break;
  1388. case 3:
  1389. memset(message31,'\0',sizeof(message31));
  1390. Serial.readBytesUntil('.',message31,10);
  1391. break;
  1392. }
  1393. delay(50);
  1394. Serial.read();
  1395. Serial.println(F("Enter the second line of your message followed by a period (.):"));
  1396. while(!Serial.available());
  1397. delay(50);
  1398. switch(presetNum){
  1399. case 1:
  1400. memset(message12,'\0',sizeof(message11));
  1401. Serial.readBytesUntil('.',message12,10);
  1402. break;
  1403. case 2:
  1404. memset(message22,'\0',sizeof(message12));
  1405. Serial.readBytesUntil('.',message22,10);
  1406. break;
  1407. case 3:
  1408. memset(message32,'\0',sizeof(message12));
  1409. Serial.readBytesUntil('.',message32,10);
  1410. break;
  1411. }
  1412. }
  1413. delay(50);
  1414. Serial.read();
  1415. }
  1416.  
  1417.  
  1418. void messagePrint(){
  1419. int numBlanks = 0;
  1420. switch(currentMessage){
  1421. case 1:
  1422. if(messageLines[currentMessage-1]==1){
  1423. for(int i = 0;i<sizeof(message11);i++){
  1424. if(message11[i]=='\0') numBlanks++;
  1425. }
  1426. for(int i = 0;i<sizeof(message11);i++){
  1427. letters(1,((i*7)+1)+(59-(8-numBlanks)*7)/2,message11[i],globalR,globalG,globalB);
  1428. }
  1429. }
  1430. if(messageLines[currentMessage-1]==2){
  1431. for(int i = 0;i<sizeof(message11);i++){
  1432. if(message11[i]=='\0') numBlanks++;
  1433. }
  1434. for(int i = 0;i<sizeof(message11);i++){
  1435. letters(0,((i*7)+1)+(59-(8-numBlanks)*7)/2,message11[i],globalR,globalG,globalB);
  1436. }
  1437. numBlanks=0;
  1438. for(int i = 0;i<sizeof(message12);i++){
  1439. if(message12[i]=='\0') numBlanks++;
  1440. }
  1441. for(int i = 0;i<sizeof(message12);i++){
  1442. letters(2,((i*7)+1)+(59-(8-numBlanks)*7)/2,message12[i],globalR,globalG,globalB);
  1443. }
  1444. }
  1445. break;
  1446. case 2:
  1447. if(messageLines[currentMessage-1]==1){
  1448. for(int i = 0;i<sizeof(message21);i++){
  1449. if(message21[i]=='\0') numBlanks++;
  1450. }
  1451. for(int i = 0;i<sizeof(message21);i++){
  1452. letters(1,((i*7)+1)+(59-(8-numBlanks)*7)/2,message21[i],globalR,globalG,globalB);
  1453. }
  1454. }
  1455. if(messageLines[currentMessage-1]==2){
  1456. for(int i = 0;i<sizeof(message21);i++){
  1457. if(message21[i]=='\0') numBlanks++;
  1458. }
  1459. for(int i = 0;i<sizeof(message21);i++){
  1460. letters(0,((i*7)+1)+(59-(8-numBlanks)*7)/2,message21[i],globalR,globalG,globalB);
  1461. }
  1462. numBlanks=0;
  1463. for(int i = 0;i<sizeof(message22);i++){
  1464. if(message22[i]=='\0') numBlanks++;
  1465. }
  1466. for(int i = 0;i<sizeof(message22);i++){
  1467. letters(2,((i*7)+1)+(59-(8-numBlanks)*7)/2,message22[i],globalR,globalG,globalB);
  1468. }
  1469. }
  1470. break;
  1471. case 3:
  1472. if(messageLines[currentMessage-1]==1){
  1473. for(int i = 0;i<sizeof(message31);i++){
  1474. if(message31[i]=='\0') numBlanks++;
  1475. }
  1476. for(int i = 0;i<sizeof(message31);i++){
  1477. letters(1,((i*7)+1)+(59-(8-numBlanks)*7)/2,message31[i],globalR,globalG,globalB);
  1478. }
  1479. }
  1480. if(messageLines[currentMessage-1]==2){
  1481. for(int i = 0;i<sizeof(message31);i++){
  1482. if(message31[i]=='\0') numBlanks++;
  1483. }
  1484. for(int i = 0;i<sizeof(message31);i++){
  1485. letters(0,((i*7)+1)+(59-(8-numBlanks)*7)/2,message31[i],globalR,globalG,globalB);
  1486. }
  1487. numBlanks=0;
  1488. for(int i = 0;i<sizeof(message32);i++){
  1489. if(message32[i]=='\0') numBlanks++;
  1490. }
  1491. for(int i = 0;i<sizeof(message32);i++){
  1492. letters(2,((i*7)+1)+(59-(8-numBlanks)*7)/2,message32[i],globalR,globalG,globalB);
  1493. }
  1494. }
  1495. break;
  1496. }
  1497. }
  1498.  
  1499.  
  1500. //mario pipes
  1501. void mario(){
  1502. for(int i = 0;i<strips;i++)
  1503. {
  1504. if (i<2)
  1505. for(int j = 0;j<10;j++)
  1506. {
  1507. leds[allLEDS[i][j]].setRGB(0,brightnessLimit(255),0);
  1508. leds[allLEDS[i][59-j]].setRGB(0,brightnessLimit(255),0);
  1509. }
  1510. else if(i<7){
  1511. for(int j = 2;j<8;j++)
  1512. {
  1513. leds[allLEDS[i][j]].setRGB(0,brightnessLimit(255),0);
  1514. leds[allLEDS[i][59-j]].setRGB(0,brightnessLimit(255),0);
  1515. }
  1516. }
  1517. else if(i>7){
  1518. for(int j =0;j<60;j++){
  1519. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(90),0);
  1520. }
  1521. }
  1522. else{
  1523. for(int j =0;j<60;j++){
  1524. leds[allLEDS[i][j]].setRGB(brightnessLimit(20),brightnessLimit(255),30);
  1525. }
  1526. }
  1527. }
  1528. for(int i = 3;i<strips-3;i++){
  1529. if(i == 5)
  1530. for(int j = 8;j<20;j++)
  1531. {
  1532. if(j ==8||j==9||j==19||j==18)
  1533. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  1534. else
  1535. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  1536. }
  1537. if(i == 6)
  1538. for(int j = 10;j<18;j++)
  1539. {
  1540. // if(j ==10||j==11||j==17||j==16)
  1541. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(255),brightnessLimit(255));
  1542. // else
  1543. // leds[allLEDS[i][j]].setRGB(brightnessLimit(0),brightnessLimit(255),brightnessLimit(0));
  1544. }
  1545. if(i == 4)
  1546. for(int j = 10;j<18;j++)
  1547. {
  1548. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  1549. }
  1550. if(i == 3)
  1551. for(int j = 11;j<17;j++)
  1552. {
  1553. leds[allLEDS[i][j]].setRGB(brightnessLimit(255),brightnessLimit(0),brightnessLimit(0));
  1554. }
  1555. }
  1556. FastLED.show();
  1557. }
  1558.  
  1559.  
  1560. void shellBounce(){
  1561. if(leds[allLEDS[5][8]].r==0&&leds[allLEDS[5][8]].g==0&&leds[allLEDS[5][8]].b==0&&leds[allLEDS[5][51]].r!=0&&leds[allLEDS[5][51]].g!=0&&leds[allLEDS[5][51]].b!=0){
  1562. backOrForward=0;
  1563. }
  1564. if(leds[allLEDS[5][8]].r!=0&&leds[allLEDS[5][8]].g!=0&&leds[allLEDS[5][8]].b!=0&&leds[allLEDS[5][51]].r==0&&leds[allLEDS[5][51]].g==0&&leds[allLEDS[5][51]].b==0){
  1565. backOrForward=1;
  1566. }
  1567. if(backOrForward==0) {
  1568. for(int i = 3;i<strips-3;i++){
  1569. for(int j = 8;j<51;j++){
  1570. leds[allLEDS[i][j]]=leds[allLEDS[i][j+1]];
  1571. }
  1572. }
  1573. leds[allLEDS[5][51]].setRGB(0,0,0);
  1574. }
  1575. else
  1576. {
  1577. for(int i = 3;i<strips-3;i++){
  1578. for(int j = 51;j>8;j--){
  1579. leds[allLEDS[i][j]]=leds[allLEDS[i][j-1]];
  1580. }
  1581. }
  1582. leds[allLEDS[5][8]].setRGB(0,0,0);
  1583.  
  1584. }
  1585. delay(myDelay);
  1586. FastLED.show();
  1587. }
  1588.  
  1589.  
  1590. //matrix effect
  1591. void matrixRun(){
  1592. int bc = brightnessLimit(10);
  1593. for(int i = 0;i<60;i++){
  1594. if((leds[allLEDS[1][i]].g>bc&&leds[allLEDS[2][i]].g>bc&&leds[allLEDS[3][i]].g>bc&&leds[allLEDS[4][i]].g>bc&&leds[allLEDS[5][i]].g<=bc)||(leds[allLEDS[1][i]].g>bc&&leds[allLEDS[2][i]].g>bc&&leds[allLEDS[3][i]].g>bc&&leds[allLEDS[4][i]].g>bc&&leds[allLEDS[5][i]].g>bc&&leds[allLEDS[6][i]].g>bc&&leds[allLEDS[7][i]].g>bc&&leds[allLEDS[8][i]].g>bc))
  1595. leds[allLEDS[0][i]].g=bc;
  1596. }
  1597. matrixInit();
  1598. FastLED.show();
  1599. matrixFall();
  1600. delay(50);
  1601. }
  1602.  
  1603.  
  1604. void matrixInit(){
  1605. int counter=0;
  1606. int temp2 = random (60);
  1607. int temp = 3;
  1608. while(counter<temp){
  1609. leds[temp2].setRGB(0,brightnessLimit(255),0);
  1610. temp2 = random(60);
  1611. counter++;
  1612. }
  1613. // FastLED.show();
  1614. }
  1615.  
  1616.  
  1617. void matrixFall(){
  1618. for(int i = strips-1;i>0;i--){
  1619. for(int j =0;j<60;j++){
  1620. leds[allLEDS[i][j]]=leds[allLEDS[i-1][j]];
  1621. }
  1622. }
  1623. }
  1624.  
  1625.  
  1626. void forwardColor(int r, int g, int b){
  1627. for(int i = 0;i<NUM_LEDS;i++){
  1628. leds[i].setRGB(r,g,b);
  1629. FastLED.show();
  1630. // delay(5);
  1631. }
  1632. }
  1633.  
  1634.  
  1635. void backwardColor(int r, int g, int b){
  1636. for(int i = NUM_LEDS-1;i>=0;i--){
  1637. leds[i].setRGB(r,g,b);
  1638. FastLED.show();
  1639. // delay(5);
  1640. }
  1641. }
  1642.  
  1643.  
  1644. void dimColor(int r, int g, int b){
  1645. int largestVal;
  1646. int newR,newB,newG;
  1647. if(max(r,g)==r){
  1648. if(max(r,b)==r) largestVal=r;
  1649. else largestVal=b;
  1650. }
  1651. else{
  1652. if (max(g,b)==g)largestVal=g;
  1653. else largestVal=b;
  1654. }
  1655. for(int i = largestVal; i>=0;i--){
  1656. newR=map(i,0,largestVal,0,r);
  1657. newG=map(i,0,largestVal,0,g);
  1658. newB=map(i,0,largestVal,0,b);
  1659. for(int j =0;j<NUM_LEDS;j++){
  1660. leds[j].setRGB(newR,newG,newB);
  1661. }
  1662. FastLED.show();
  1663. }
  1664. }
  1665.  
  1666.  
  1667. //array functions
  1668. int contains(int a[],int b){
  1669. for(int i = 0;i<sizeof(a);i++){
  1670. if (a[i]==b)
  1671. return 1;
  1672. }
  1673. return 0;
  1674. }
  1675.  
  1676.  
  1677. void number(int startPosition, int number,int r, int g, int b){
  1678. switch(number){
  1679. case 0:
  1680. for(int i =0;i<strips;i++){
  1681. switch(i){
  1682. case 0:
  1683. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1684. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1685. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1686. break;
  1687. case 1:
  1688. leds[allLEDS[i][startPosition+3]].setRGB(r,g,b);
  1689. leds[allLEDS[i][startPosition+10-3]].setRGB(r,g,b);
  1690. leds[allLEDS[i][startPosition+2]].setRGB(r,g,b);
  1691. leds[allLEDS[i][startPosition+10-2]].setRGB(r,g,b);
  1692. break;
  1693. case 2:
  1694. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1695. leds[allLEDS[i][startPosition+10-1]].setRGB(r,g,b);
  1696. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1697. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1698. break;
  1699. case 3:
  1700. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1701. leds[allLEDS[i][startPosition+10-1]].setRGB(r,g,b);
  1702. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1703. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1704. leds[allLEDS[i][startPosition+2]].setRGB(r,g,b);
  1705. break;
  1706. case 4:
  1707. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1708. leds[allLEDS[i][startPosition+10-1]].setRGB(r,g,b);
  1709. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1710. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1711. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1712. break;
  1713. case 5:
  1714. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1715. leds[allLEDS[i][startPosition+10-1]].setRGB(r,g,b);
  1716. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1717. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1718. leds[allLEDS[i][startPosition+7]].setRGB(r,g,b);
  1719. break;
  1720. case 6:
  1721. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1722. leds[allLEDS[i][startPosition+10-1]].setRGB(r,g,b);
  1723. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1724. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1725. break;
  1726. case 7:
  1727. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1728. leds[allLEDS[i][startPosition+10-1]].setRGB(r,g,b);
  1729. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1730. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1731. break;
  1732. case 8:
  1733. leds[allLEDS[i][startPosition+3]].setRGB(r,g,b);
  1734. leds[allLEDS[i][startPosition+10-3]].setRGB(r,g,b);
  1735. leds[allLEDS[i][startPosition+2]].setRGB(r,g,b);
  1736. leds[allLEDS[i][startPosition+10-2]].setRGB(r,g,b);
  1737. break;
  1738. case 9:
  1739. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1740. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1741. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1742. break;
  1743. }
  1744. }
  1745. break;
  1746. case 1:
  1747. for(int i =0;i<strips;i++){
  1748. switch(i){
  1749. case 0:
  1750. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1751. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1752. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1753. break;
  1754. case 1:
  1755. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1756. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1757. leds[allLEDS[i][startPosition+2]].setRGB(r,g,b);
  1758. leds[allLEDS[i][startPosition+3]].setRGB(r,g,b);
  1759. break;
  1760. case 2:
  1761. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1762. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1763. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1764. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1765. break;
  1766. case 3:
  1767. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1768. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1769. break;
  1770. case 4:
  1771. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1772. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1773. break;
  1774. case 5:
  1775. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1776. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1777. break;
  1778. case 6:
  1779. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1780. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1781. break;
  1782. case 7:
  1783. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1784. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1785. break;
  1786. case 8:
  1787. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1788. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1789. break;
  1790. case 9:
  1791. for(int j=startPosition;j<startPosition+11;j++){
  1792. leds[allLEDS[i][j]].setRGB(r,g,b);
  1793. }
  1794. break;
  1795. }
  1796. }
  1797. break;
  1798. case 2:
  1799. for(int i =0;i<strips;i++){
  1800. switch(i){
  1801. case 0:
  1802. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1803. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1804. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1805. leds[allLEDS[i][startPosition+3]].setRGB(r,g,b);
  1806.  
  1807. break;
  1808. case 1:
  1809. leds[allLEDS[i][startPosition+2]].setRGB(r,g,b);
  1810. leds[allLEDS[i][startPosition+7]].setRGB(r,g,b);
  1811. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1812. leds[allLEDS[i][startPosition+8]].setRGB(r,g,b);
  1813. break;
  1814. case 2:
  1815. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1816. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  1817. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1818. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1819. break;
  1820. case 3:
  1821. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  1822. leds[allLEDS[i][startPosition+8]].setRGB(r,g,b);
  1823. break;
  1824. case 4:
  1825. leds[allLEDS[i][startPosition+7]].setRGB(r,g,b);
  1826. leds[allLEDS[i][startPosition+8]].setRGB(r,g,b);
  1827. break;
  1828. case 5:
  1829. leds[allLEDS[i][startPosition+7]].setRGB(r,g,b);
  1830. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1831. break;
  1832. case 6:
  1833. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1834. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  1835. break;
  1836. case 7:
  1837. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1838. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  1839. break;
  1840. case 8:
  1841. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  1842. leds[allLEDS[i][startPosition+3]].setRGB(r,g,b);
  1843.  
  1844. break;
  1845. case 9:
  1846. for(int j=2+startPosition;j<startPosition+11;j++){
  1847. leds[allLEDS[i][j]].setRGB(r,g,b);
  1848. }
  1849. break;
  1850. }
  1851. }
  1852. break;
  1853. case 3:
  1854. for(int i =0;i<strips;i++){
  1855. switch(i){
  1856. case 0:
  1857. for(int j =startPosition;j<startPosition+11;j++){
  1858. leds[allLEDS[i][j]].setRGB(r,g,b);
  1859. }
  1860. break;
  1861. case 1:
  1862. for(int j =startPosition;j<startPosition+11;j++){
  1863. leds[allLEDS[i][j]].setRGB(r,g,b);
  1864. }
  1865. break;
  1866. case 2:
  1867. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1868. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  1869. break;
  1870. case 3:
  1871. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  1872. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  1873. break;
  1874. case 4:
  1875. for(int j =startPosition;j<startPosition+11;j++){
  1876. leds[allLEDS[i][j]].setRGB(r,g,b);
  1877. }
  1878. break;
  1879. case 5:
  1880. for(int j =startPosition;j<startPosition+11;j++){
  1881. leds[allLEDS[i][j]].setRGB(r,g,b);
  1882. }
  1883. break;
  1884. case 6:
  1885. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1886. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1887. break;
  1888. case 7:
  1889. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  1890. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  1891. break;
  1892. case 8:
  1893. for(int j =startPosition;j<startPosition+11;j++){
  1894. leds[allLEDS[i][j]].setRGB(r,g,b);
  1895. }
  1896. break;
  1897. case 9:
  1898. for(int j =startPosition;j<startPosition+11;j++){
  1899. leds[allLEDS[i][j]].setRGB(r,g,b);
  1900. }
  1901. break;
  1902.  
  1903. }
  1904. }
  1905. break;
  1906. case 4:
  1907. for(int i =0;i<strips;i++){
  1908. switch(i){
  1909. case 0:
  1910. break;
  1911. case 1:
  1912. break;
  1913. case 2:
  1914. break;
  1915. case 3:
  1916. break;
  1917. case 4:
  1918. break;
  1919. case 5:
  1920. break;
  1921. case 6:
  1922. break;
  1923. case 7:
  1924. break;
  1925. case 8:
  1926. break;
  1927. case 9:
  1928. break;
  1929. }
  1930. }
  1931. break;
  1932. case 5:
  1933. for(int i =0;i<strips;i++){
  1934. switch(i){
  1935. case 0:
  1936. break;
  1937. case 1:
  1938. break;
  1939. case 2:
  1940. break;
  1941. case 3:
  1942. break;
  1943. case 4:
  1944. break;
  1945. case 5:
  1946. break;
  1947. case 6:
  1948. break;
  1949. case 7:
  1950. break;
  1951. case 8:
  1952. break;
  1953. case 9:
  1954. break;
  1955. }
  1956. }
  1957. break;
  1958. case 6:
  1959. for(int i =0;i<strips;i++){
  1960. switch(i){
  1961. case 0:
  1962. break;
  1963. case 1:
  1964. break;
  1965. case 2:
  1966. break;
  1967. case 3:
  1968. break;
  1969. case 4:
  1970. break;
  1971. case 5:
  1972. break;
  1973. case 6:
  1974. break;
  1975. case 7:
  1976. break;
  1977. case 8:
  1978. break;
  1979. case 9:
  1980. break;
  1981. }
  1982. }
  1983. break;
  1984. case 7:
  1985. for(int i =0;i<strips;i++){
  1986. switch(i){
  1987. case 0:
  1988. break;
  1989. case 1:
  1990. break;
  1991. case 2:
  1992. break;
  1993. case 3:
  1994. break;
  1995. case 4:
  1996. break;
  1997. case 5:
  1998. break;
  1999. case 6:
  2000. break;
  2001. case 7:
  2002. break;
  2003. case 8:
  2004. break;
  2005. case 9:
  2006. break;
  2007. }
  2008. }
  2009. break;
  2010. case 8:
  2011. for(int i =0;i<strips;i++){
  2012. switch(i){
  2013. case 0:
  2014. break;
  2015. case 1:
  2016. break;
  2017. case 2:
  2018. break;
  2019. case 3:
  2020. break;
  2021. case 4:
  2022. break;
  2023. case 5:
  2024. break;
  2025. case 6:
  2026. break;
  2027. case 7:
  2028. break;
  2029. case 8:
  2030. break;
  2031. case 9:
  2032. break;
  2033. }
  2034. }
  2035. break;
  2036. case 9:
  2037. for(int i =0;i<strips;i++){
  2038. switch(i){
  2039. case 0:
  2040. break;
  2041. case 1:
  2042. break;
  2043. case 2:
  2044. break;
  2045. case 3:
  2046. break;
  2047. case 4:
  2048. break;
  2049. case 5:
  2050. break;
  2051. case 6:
  2052. break;
  2053. case 7:
  2054. break;
  2055. case 8:
  2056. break;
  2057. case 9:
  2058. break;
  2059. }
  2060. }
  2061. break;
  2062. case 10:
  2063. for(int i = 0;i<strips;i++){
  2064. if(i ==0 || i ==strips-1||i==strips-2||i==1){
  2065. for(int j =startPosition;j<startPosition+11;j++){
  2066. leds[allLEDS[i][j]].setRGB(r,g,b);
  2067. }
  2068. }
  2069. else{
  2070. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2071. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2072. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2073. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2074. }
  2075. }
  2076. break;
  2077. case 11:
  2078. for (int i = 0;i<strips;i++){
  2079. leds[allLEDS[i][startPosition+3]].setRGB(r,g,b);
  2080. leds[allLEDS[i][startPosition+4]].setRGB(r,g,b);
  2081. leds[allLEDS[i][startPosition+5]].setRGB(r,g,b);
  2082. leds[allLEDS[i][startPosition+6]].setRGB(r,g,b);
  2083. leds[allLEDS[i][startPosition+7]].setRGB(r,g,b);
  2084. };
  2085. break;
  2086. case 12:
  2087. for(int i =0;i<strips;i++){
  2088. switch(i){
  2089. case 0:
  2090. for(int j =startPosition;j<startPosition+11;j++){
  2091. leds[allLEDS[i][j]].setRGB(r,g,b);
  2092. }
  2093. break;
  2094. case 1:
  2095. for(int j =startPosition;j<startPosition+11;j++){
  2096. leds[allLEDS[i][j]].setRGB(r,g,b);
  2097. }
  2098. break;
  2099. case 2:
  2100. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2101. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2102. break;
  2103. case 3:
  2104. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2105. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2106. break;
  2107. case 4:
  2108. for(int j =startPosition;j<startPosition+11;j++){
  2109. leds[allLEDS[i][j]].setRGB(r,g,b);
  2110. }
  2111. break;
  2112. case 5:
  2113. for(int j =startPosition;j<startPosition+11;j++){
  2114. leds[allLEDS[i][j]].setRGB(r,g,b);
  2115. }
  2116. break;
  2117. case 6:
  2118. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2119. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2120. break;
  2121. case 7:
  2122. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2123. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2124. break;
  2125. case 8:
  2126. for(int j =startPosition;j<startPosition+11;j++){
  2127. leds[allLEDS[i][j]].setRGB(r,g,b);
  2128. }
  2129. break;
  2130. case 9:
  2131. for(int j =startPosition;j<startPosition+11;j++){
  2132. leds[allLEDS[i][j]].setRGB(r,g,b);
  2133. }
  2134. break;
  2135.  
  2136. }
  2137. }
  2138. break;
  2139. case 13:
  2140. for (int i = 0;i<strips;i++){
  2141. if(i ==0||i==1||i==8||i==9||i==4||i==5){
  2142. for(int j =startPosition;j<startPosition+11;j++){
  2143. leds[allLEDS[i][j]].setRGB(r,g,b);
  2144. }
  2145. }
  2146. else{
  2147. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2148. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2149. }
  2150. }
  2151. break;
  2152. case 14:
  2153. for (int i = 0;i<strips;i++){
  2154. if(i==4||i==5){
  2155. for(int j =startPosition;j<startPosition+11;j++){
  2156. leds[allLEDS[i][j]].setRGB(r,g,b);
  2157. }
  2158. }
  2159. else if (i <4){
  2160. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2161. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2162. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2163. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2164. }
  2165. else{
  2166. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2167. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2168. }
  2169. }
  2170. break;
  2171. case 15:
  2172. for(int i =0;i<strips;i++){
  2173. switch(i){
  2174. case 0:
  2175. for(int j =startPosition;j<startPosition+11;j++){
  2176. leds[allLEDS[i][j]].setRGB(r,g,b);
  2177. }
  2178. break;
  2179. case 1:
  2180. for(int j =startPosition;j<startPosition+11;j++){
  2181. leds[allLEDS[i][j]].setRGB(r,g,b);
  2182. }
  2183. break;
  2184. case 7:
  2185. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2186. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2187. break;
  2188. case 6:
  2189. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2190. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2191. break;
  2192. case 4:
  2193. for(int j =startPosition;j<startPosition+11;j++){
  2194. leds[allLEDS[i][j]].setRGB(r,g,b);
  2195. }
  2196. break;
  2197. case 5:
  2198. for(int j =startPosition;j<startPosition+11;j++){
  2199. leds[allLEDS[i][j]].setRGB(r,g,b);
  2200. }
  2201. break;
  2202. case 2:
  2203. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2204. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2205. break;
  2206. case 3:
  2207. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2208. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2209. break;
  2210. case 8:
  2211. for(int j =startPosition;j<startPosition+11;j++){
  2212. leds[allLEDS[i][j]].setRGB(r,g,b);
  2213. }
  2214. break;
  2215. case 9:
  2216. for(int j =startPosition;j<startPosition+11;j++){
  2217. leds[allLEDS[i][j]].setRGB(r,g,b);
  2218. }
  2219. break;
  2220.  
  2221. }
  2222. }
  2223. break;
  2224. case 16:
  2225. for(int i =0;i<strips;i++){
  2226. switch(i){
  2227. case 0:
  2228. for(int j =startPosition;j<startPosition+11;j++){
  2229. leds[allLEDS[i][j]].setRGB(r,g,b);
  2230. }
  2231. break;
  2232. case 1:
  2233. for(int j =startPosition;j<startPosition+11;j++){
  2234. leds[allLEDS[i][j]].setRGB(r,g,b);
  2235. }
  2236. break;
  2237. case 7:
  2238. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2239. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2240. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2241. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2242. break;
  2243. case 6:
  2244. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2245. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2246. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2247. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2248. break;
  2249. case 4:
  2250. for(int j =startPosition;j<startPosition+11;j++){
  2251. leds[allLEDS[i][j]].setRGB(r,g,b);
  2252. }
  2253. break;
  2254. case 5:
  2255. for(int j =startPosition;j<startPosition+11;j++){
  2256. leds[allLEDS[i][j]].setRGB(r,g,b);
  2257. }
  2258. break;
  2259. case 2:
  2260. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2261. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2262. break;
  2263. case 3:
  2264. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2265. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2266. break;
  2267. case 8:
  2268. for(int j =startPosition;j<startPosition+11;j++){
  2269. leds[allLEDS[i][j]].setRGB(r,g,b);
  2270. }
  2271. break;
  2272. case 9:
  2273. for(int j =startPosition;j<startPosition+11;j++){
  2274. leds[allLEDS[i][j]].setRGB(r,g,b);
  2275. }
  2276. break;
  2277.  
  2278. }
  2279. }
  2280. break;
  2281. case 17:
  2282. for(int i = 0;i<strips;i++){
  2283. if(i <2){
  2284. for(int j =startPosition;j<startPosition+11;j++){
  2285. leds[allLEDS[i][j]].setRGB(r,g,b);
  2286. }
  2287. }
  2288. else{
  2289. leds[allLEDS[i][startPosition+10-i]].setRGB(r,g,b);
  2290. leds[allLEDS[i][startPosition+11-i]].setRGB(r,g,b);
  2291.  
  2292. }
  2293. }
  2294. break;
  2295. case 18:
  2296. for(int i =0;i<strips;i++){
  2297. switch(i){
  2298. case 0:
  2299. for(int j =startPosition;j<startPosition+11;j++){
  2300. leds[allLEDS[i][j]].setRGB(r,g,b);
  2301. }
  2302. break;
  2303. case 1:
  2304. for(int j =startPosition;j<startPosition+11;j++){
  2305. leds[allLEDS[i][j]].setRGB(r,g,b);
  2306. }
  2307. break;
  2308. case 7:
  2309. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2310. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2311. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2312. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2313. break;
  2314. case 6:
  2315. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2316. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2317. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2318. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2319. break;
  2320. case 4:
  2321. for(int j =startPosition;j<startPosition+11;j++){
  2322. leds[allLEDS[i][j]].setRGB(r,g,b);
  2323. }
  2324. break;
  2325. case 5:
  2326. for(int j =startPosition;j<startPosition+11;j++){
  2327. leds[allLEDS[i][j]].setRGB(r,g,b);
  2328. }
  2329. break;
  2330. case 2:
  2331. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2332. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2333. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2334. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2335. break;
  2336. case 3:
  2337. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2338. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2339. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2340. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2341. break;
  2342. case 8:
  2343. for(int j =startPosition;j<startPosition+11;j++){
  2344. leds[allLEDS[i][j]].setRGB(r,g,b);
  2345. }
  2346. break;
  2347. case 9:
  2348. for(int j =startPosition;j<startPosition+11;j++){
  2349. leds[allLEDS[i][j]].setRGB(r,g,b);
  2350. }
  2351. break;
  2352.  
  2353. }
  2354. }
  2355. break;
  2356. case 19:
  2357. for(int i =0;i<strips;i++){
  2358. switch(i){
  2359. case 0:
  2360. for(int j =startPosition;j<startPosition+11;j++){
  2361. leds[allLEDS[i][j]].setRGB(r,g,b);
  2362. }
  2363. break;
  2364. case 1:
  2365. for(int j =startPosition;j<startPosition+11;j++){
  2366. leds[allLEDS[i][j]].setRGB(r,g,b);
  2367. }
  2368. break;
  2369. case 7:
  2370. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2371. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2372.  
  2373. break;
  2374. case 6:
  2375. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2376. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2377. break;
  2378. case 4:
  2379. for(int j =startPosition;j<startPosition+11;j++){
  2380. leds[allLEDS[i][j]].setRGB(r,g,b);
  2381. }
  2382. break;
  2383. case 5:
  2384. for(int j =startPosition;j<startPosition+11;j++){
  2385. leds[allLEDS[i][j]].setRGB(r,g,b);
  2386. }
  2387. break;
  2388. case 2:
  2389. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2390. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2391. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2392. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2393. break;
  2394. case 3:
  2395. leds[allLEDS[i][startPosition+1]].setRGB(r,g,b);
  2396. leds[allLEDS[i][startPosition]].setRGB(r,g,b);
  2397. leds[allLEDS[i][startPosition+10]].setRGB(r,g,b);
  2398. leds[allLEDS[i][startPosition+9]].setRGB(r,g,b);
  2399. break;
  2400. case 8:
  2401. for(int j =startPosition;j<startPosition+11;j++){
  2402. leds[allLEDS[i][j]].setRGB(r,g,b);
  2403. }
  2404. break;
  2405. case 9:
  2406. for(int j =startPosition;j<startPosition+11;j++){
  2407. leds[allLEDS[i][j]].setRGB(r,g,b);
  2408. }
  2409. break;
  2410.  
  2411. }
  2412. }
  2413. break;
  2414. }
  2415. }
  2416.  
  2417.  
  2418. int brightnessLimit(int c){
  2419. return map(c,0,255,0,maxBrightness);
  2420. }
  2421.  
  2422.  
  2423. int backgroundLimit(int c){
  2424. return map(c,0,255,0,backGroundBrightness);
  2425. }
  2426.  
  2427.  
  2428. void clock(int minute,int hour, int r,int g,int b){
  2429. number(2,((hour %12)/10)+10,r,g,b);
  2430. number(16,((hour %12)%10)+10,r,g,b);
  2431. number(33,(minute/10)+10,r,g,b);
  2432. number(47,(minute%10)+10,r,g,b);
  2433.  
  2434. leds[allLEDS[3][29]].setRGB(r,g,b);
  2435. leds[allLEDS[2][29]].setRGB(r,g,b);
  2436. leds[allLEDS[6][29]].setRGB(r,g,b);
  2437. leds[allLEDS[7][29]].setRGB(r,g,b);
  2438.  
  2439.  
  2440.  
  2441. leds[allLEDS[3][30]].setRGB(r,g,b);
  2442. leds[allLEDS[2][30]].setRGB(r,g,b);
  2443. leds[allLEDS[6][30]].setRGB(r,g,b);
  2444. leds[allLEDS[7][30]].setRGB(r,g,b);
  2445. }
  2446.  
  2447.  
  2448. void setBackground(int r,int g, int b){
  2449.  
  2450. for(int i = 0;i<NUM_LEDS;i++)
  2451. {
  2452. if(leds[i].r==0&&leds[i].g==0&&leds[i].b==0){
  2453. leds[i].setRGB(r,g,b);
  2454. }
  2455. }
  2456. FastLED.show();
  2457. }
  2458.  
  2459.  
  2460. void dtd(){
  2461. int startPosition = 13;
  2462. int r = brightnessLimit(255);
  2463. int g = brightnessLimit(165);
  2464. int b = brightnessLimit(0);
  2465. leds[allLEDS[0][startPosition]].setRGB(r,g,b);
  2466. leds[allLEDS[0][startPosition+1]].setRGB(r,g,b);
  2467. leds[allLEDS[0][startPosition-1]].setRGB(r,g,b);
  2468. leds[allLEDS[1][startPosition+1]].setRGB(r,g,b);
  2469. leds[allLEDS[1][startPosition-1]].setRGB(r,g,b);
  2470. leds[allLEDS[1][startPosition+2]].setRGB(r,g,b);
  2471. leds[allLEDS[1][startPosition-2]].setRGB(r,g,b);
  2472.  
  2473. for(int i = 2;i<strips-3;i++){
  2474. leds[allLEDS[i][startPosition-i]].setRGB(r,g,b);
  2475. leds[allLEDS[i][startPosition+i]].setRGB(r,g,b);
  2476. leds[allLEDS[i][startPosition-i-1]].setRGB(r,g,b);
  2477. leds[allLEDS[i][startPosition+i+1]].setRGB(r,g,b);
  2478. }
  2479. for(int i = strips-3;i<strips-1;i++)
  2480. {
  2481. for(int j = startPosition-8;j<startPosition+9;j++){
  2482. leds[allLEDS[i][j]].setRGB(r,g,b);
  2483. }
  2484. }
  2485. startPosition = 45;
  2486. leds[allLEDS[0][startPosition]].setRGB(r,g,b);
  2487. leds[allLEDS[0][startPosition+1]].setRGB(r,g,b);
  2488. leds[allLEDS[0][startPosition-1]].setRGB(r,g,b);
  2489. leds[allLEDS[1][startPosition+1]].setRGB(r,g,b);
  2490. leds[allLEDS[1][startPosition-1]].setRGB(r,g,b);
  2491. leds[allLEDS[1][startPosition+2]].setRGB(r,g,b);
  2492. leds[allLEDS[1][startPosition-2]].setRGB(r,g,b);
  2493.  
  2494. for(int i = 2;i<strips-3;i++){
  2495. leds[allLEDS[i][startPosition-i]].setRGB(r,g,b);
  2496. leds[allLEDS[i][startPosition+i]].setRGB(r,g,b);
  2497. leds[allLEDS[i][startPosition-i-1]].setRGB(r,g,b);
  2498. leds[allLEDS[i][startPosition+i+1]].setRGB(r,g,b);
  2499. }
  2500. for(int i = strips-3;i<strips-1;i++)
  2501. {
  2502. for(int j = startPosition-8;j<startPosition+9;j++){
  2503. leds[allLEDS[i][j]].setRGB(r,g,b);
  2504. }
  2505. }
  2506. startPosition = 29;
  2507. for(int i = 0;i<2;i++){
  2508. for(int j = startPosition-8;j<startPosition+9;j++){
  2509. leds[allLEDS[i][j]].setRGB(r,g,b);
  2510. }
  2511. }
  2512. for(int i = 2;i<strips-1;i++)
  2513. {
  2514. for (int j = startPosition -1;j<startPosition+2;j++){
  2515. leds[allLEDS[i][j]].setRGB(r,g,b);
  2516. }
  2517. }
  2518. }
  2519.  
  2520.  
  2521. void scrollText(){
  2522. for(int i = 0;i <strips;i++){
  2523. int r= leds[allLEDS[i][59]].r;
  2524. int g= leds[allLEDS[i][59]].g;
  2525. int b = leds[allLEDS[i][59]].b;
  2526. for(int j = 59;j>0;j--){
  2527. leds[allLEDS[i][j]]=leds[allLEDS[i][j-1]];
  2528. }
  2529. leds[allLEDS[i][0]].r=r;
  2530. leds[allLEDS[i][0]].g=g;
  2531. leds[allLEDS[i][0]].b=b;
  2532.  
  2533. }
  2534. FastLED.show();
  2535. delay(myDelay);
  2536. }
  2537.  
  2538.  
  2539. void colors(){
  2540. Serial.println(F(""));
  2541. Serial.println(F("************************************* Color Combos *********************************"));
  2542. Serial.println(F("Dtd Gold"));
  2543. Serial.println(F("255.165.0"));
  2544. Serial.println(F("Deep Blue"));
  2545. Serial.println(F("27.89.244"));
  2546. Serial.println(F("Deep Blue2"));
  2547. Serial.println(F("39.135.232"));
  2548. Serial.println(F("Violet"));
  2549. Serial.println(F("188.64.206"));
  2550. Serial.println(F("Pink"));
  2551. Serial.println(F("195.26.76"));
  2552. Serial.println(F("Tan"));
  2553. Serial.println(F("254.126.42"));
  2554. Serial.println(F("Baby Blue "));
  2555. Serial.println(F("90.200.209"));
  2556. Serial.println(F("Light Green"));
  2557. Serial.println(F("60.255.40"));
  2558. }
  2559.  
  2560. void startup(){
  2561. Serial.println(F(""));
  2562. Serial.println(F("************************************* Help Menu *********************************"));
  2563. Serial.println(F("---Adjusting the lights works by entering a character followed by a number."));
  2564. Serial.println(F("---All action will be paused during settings changes"));
  2565. Serial.println(F("---If more than one number is required, enter a period . inbetween numbers."));
  2566. Serial.println(F("---For example to change to mode 2:"));
  2567. Serial.println(F("m"));
  2568. Serial.println(F("2"));
  2569. Serial.println(F("---To set a green background:"));
  2570. Serial.println(F("b"));
  2571. Serial.println(F("0.255.0"));
  2572. Serial.println(F(""));
  2573. Serial.println(F("---Menus:"));
  2574. Serial.println(F("-List of pretty colors: p"));
  2575. Serial.println(F("-Help Menu: h"));
  2576. Serial.println(F("-Modes List: l"));
  2577. Serial.println(F(""));
  2578. Serial.println(F("---List of Functions:"));
  2579. Serial.println(F("-To select a mode: m"));
  2580. Serial.println(F("Mode#"));
  2581. Serial.println(F("-To set a background: b"));
  2582. Serial.println(F("Red#.Green#.Blue#"));
  2583. Serial.println(F("-To set a background brightness: z"));
  2584. Serial.println(F("Brightness#"));
  2585. Serial.println(F("-To change color in a mode: c"));
  2586. Serial.println(F("Red#.Green#.Blue#"));
  2587. Serial.println(F("-To set maximum brightness: i"));
  2588. Serial.println(F("Brightness#"));
  2589. Serial.println(F("-To set delay: d"));
  2590. Serial.println(F("Milliseconds#"));
  2591. Serial.println(F("-To select a preset message: s"));
  2592. Serial.println(F("Message#"));
  2593. }
  2594.  
  2595. void modeList(){
  2596. Serial.println(F(""));
  2597. Serial.println(F("************************************* Mode List *********************************"));
  2598. Serial.println(F("**********************************"));
  2599. Serial.println(F("m0: Matrix"));
  2600. Serial.println(F("m1: American Flag"));
  2601. Serial.println(F("m2: Clock"));
  2602. Serial.println(F("m20: Preset blue clock, orange back"));
  2603. Serial.println(F("m21: Preset pink clock, green back"));
  2604. Serial.println(F("m22: Preset tan clock, purple back"));
  2605. Serial.println(F("m3: Center Expansion"));
  2606. Serial.println(F("m4: DTD"));
  2607. Serial.println(F("m5: DTD Scroll"));
  2608. Serial.println(F("m6: Set Preset Message"));
  2609. Serial.println(F("m7: Display Preset Message"));
  2610. Serial.println(F("m8: Single Color"));
  2611. Serial.println(F("m10: Koopa Shell"));
  2612. Serial.println(F("m11: Color Fade"));
  2613. Serial.println(F("m12: Color Flash"));
  2614. Serial.println(F("m111: Scroll"));
  2615. Serial.println(F("m123: Clear Lights"));
  2616. // Serial.println(F("m13: rule30"));
  2617. // Serial.println(F("m14: random_march"));
  2618. // Serial.println(F("m15: rwb_march"));
  2619. // Serial.println(F("m16: radiation"));
  2620. // Serial.println(F("m17: color_loop_vardelay"));
  2621. // Serial.println(F("m18: white_temps"));
  2622. // Serial.println(F("m19: sin_bright_wave"));
  2623. // Serial.println(F("m20: pop_horizontal"));
  2624. // Serial.println(F("m21: quad_bright_curve"));
  2625. // Serial.println(F("m22: flame"));
  2626. // Serial.println(F("m23: rainbow_vertical"));
  2627. // Serial.println(F("m25: random_color_pop"));
  2628. // Serial.println(F("m26: ems_lightsSTROBE"));
  2629. // Serial.println(F("m27: rgb_propeller"));
  2630. // Serial.println(F("m28: kitt"));
  2631. // Serial.println(F("m29: matrix"));
  2632. // Serial.println(F("m30: xmas"));
  2633. // Serial.println(F("m50: strip_march_ccw"));
  2634. // Serial.println(F("m51: strip_march_cw"));
  2635. // Serial.println(F("m88: rainbow_rotate"));
  2636. // Serial.println(F("m888: demo_modeA"));
  2637. // Serial.println(F("m889: demo_modeB"));
  2638. // Serial.println(F("m999: (break out of loop)"));
  2639. Serial.println(F("**********************************"));
  2640. }
  2641.  
  2642.  
  2643. //top 0 bot 1
  2644. void letters(int topOrBot, int startPos, char letter, int r, int g, int b) {
  2645. r = brightnessLimit(r);
  2646. g= brightnessLimit(g);
  2647. b=brightnessLimit(b);
  2648. if(topOrBot ==1)
  2649. topOrBot =2;
  2650. else if(topOrBot==2)
  2651. topOrBot=5;
  2652. switch(letter){
  2653. case 'a':
  2654. for(int i = topOrBot;i<topOrBot+5;i++){
  2655. if(i ==topOrBot){
  2656. for(int j = startPos+1;j<startPos+4;j++)
  2657. {
  2658. leds[allLEDS[i][j]].setRGB(r,g,b);
  2659. }
  2660. }
  2661. else if(i !=topOrBot+2){
  2662. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2663. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2664. }
  2665. else{
  2666. for(int j = startPos;j<startPos+5;j++)
  2667. {
  2668. leds[allLEDS[i][j]].setRGB(r,g,b);
  2669. }
  2670. }
  2671. }
  2672. break;
  2673. case 'b':
  2674. for(int i = topOrBot;i<topOrBot+5;i++){
  2675. if(i ==topOrBot||i==topOrBot+2||i==topOrBot+4){
  2676. for(int j = startPos;j<startPos+4;j++)
  2677. {
  2678. leds[allLEDS[i][j]].setRGB(r,g,b);
  2679. }
  2680. }
  2681. else if(i !=topOrBot+2 ||i !=topOrBot+4){
  2682. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2683. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2684. }
  2685.  
  2686. }
  2687. break;
  2688. case 'c':
  2689. for(int i = topOrBot;i<topOrBot+5;i++){
  2690. if(i ==topOrBot||i==topOrBot+4){
  2691. for(int j = startPos+1;j<startPos+5;j++)
  2692. {
  2693. leds[allLEDS[i][j]].setRGB(r,g,b);
  2694. }
  2695. }
  2696. else{
  2697. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2698.  
  2699. }
  2700. }
  2701. break;
  2702. case 'd':
  2703. for(int i = topOrBot;i<topOrBot+5;i++){
  2704. if(i == topOrBot||i==topOrBot+4){
  2705. for(int j = startPos;j<startPos+4;j++)
  2706. {
  2707. leds[allLEDS[i][j]].setRGB(r,g,b);
  2708. }
  2709. }
  2710. else if(i !=topOrBot+2 ||i !=topOrBot+4){
  2711. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2712. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2713. }
  2714. }
  2715. break;
  2716. case 'e':
  2717. for(int i = topOrBot;i<topOrBot+5;i++){
  2718. if(i == topOrBot||i==topOrBot+4||i==topOrBot+2){
  2719. for(int j = startPos;j<startPos+5;j++)
  2720. {
  2721. leds[allLEDS[i][j]].setRGB(r,g,b);
  2722. }
  2723. }
  2724. else{
  2725. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2726. }
  2727. }
  2728. break;
  2729. case 'f':
  2730. for(int i = topOrBot;i<topOrBot+5;i++){
  2731. if(i == topOrBot||i==topOrBot+2){
  2732. for(int j = startPos;j<startPos+5;j++)
  2733. {
  2734. leds[allLEDS[i][j]].setRGB(r,g,b);
  2735. }
  2736. }
  2737. else{
  2738. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2739. }
  2740. }
  2741. break;
  2742. case 'g':
  2743. for(int i = topOrBot;i<topOrBot+5;i++){
  2744. if(i ==topOrBot||i==topOrBot+4){
  2745. for(int j = startPos+1;j<startPos+4;j++)
  2746. {
  2747. leds[allLEDS[i][j]].setRGB(r,g,b);
  2748. }
  2749. }
  2750. else if (i ==topOrBot+2){
  2751. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2752. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2753. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  2754.  
  2755.  
  2756. }
  2757. else if (i== topOrBot+3){
  2758. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2759. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2760. }
  2761. else
  2762. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2763.  
  2764. }
  2765. break;
  2766. case 'h':
  2767. for(int i = topOrBot;i<topOrBot+5;i++){
  2768. if(i !=topOrBot+2){
  2769. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2770. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2771. }
  2772. else{
  2773. for(int j = startPos;j<startPos+5;j++)
  2774. {
  2775. leds[allLEDS[i][j]].setRGB(r,g,b);
  2776. }
  2777. }
  2778. }
  2779. break;
  2780. case 'i':
  2781. for(int i = topOrBot;i<topOrBot+5;i++){
  2782. if(i !=topOrBot&&i!=topOrBot+4){
  2783. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2784. }
  2785. else{
  2786. for(int j = startPos;j<startPos+5;j++)
  2787. {
  2788. leds[allLEDS[i][j]].setRGB(r,g,b);
  2789. }
  2790. }
  2791. }
  2792. break;
  2793. case 'j':
  2794. for(int i = topOrBot;i<topOrBot+5;i++){
  2795. if( i!= topOrBot+3 && i !=topOrBot+4){
  2796. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2797. }
  2798. else if(i==topOrBot+4){
  2799. for(int j = startPos+1;j<startPos+4;j++)
  2800. {
  2801. leds[allLEDS[i][j]].setRGB(r,g,b);
  2802. }
  2803. }
  2804. else{
  2805. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2806. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2807.  
  2808. }
  2809. }
  2810. break;
  2811. case 'k':
  2812. for(int i = topOrBot;i<topOrBot+5;i++){
  2813. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2814. if(i ==topOrBot||i==topOrBot+4)
  2815. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2816.  
  2817. else if(i ==topOrBot+1||i==topOrBot+3){
  2818. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2819. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  2820. }
  2821. else
  2822. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  2823.  
  2824. }
  2825. break;
  2826. case 'l':
  2827. for(int i = topOrBot;i<topOrBot+5;i++){
  2828. if(i!=topOrBot+4){
  2829. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2830. }
  2831. else{
  2832. for(int j = startPos;j<startPos+5;j++)
  2833. {
  2834. leds[allLEDS[i][j]].setRGB(r,g,b);
  2835. }
  2836. }
  2837. }
  2838. break;
  2839. case 'm':
  2840. for(int i = topOrBot;i<topOrBot+5;i++){
  2841. if(i !=topOrBot&&i!=topOrBot+1){
  2842. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2843. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2844.  
  2845.  
  2846. }
  2847. else if (i == topOrBot+1){
  2848. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2849. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2850. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2851.  
  2852. }
  2853. else{
  2854. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2855. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2856. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  2857. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  2858.  
  2859. }
  2860. }
  2861. break;
  2862. case 'n':
  2863. for(int i = topOrBot;i<topOrBot+5;i++){
  2864. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2865. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2866. leds[allLEDS[i][startPos+i-topOrBot]].setRGB(r,g,b);
  2867. }
  2868. break;
  2869. case 'o':
  2870. for(int i = topOrBot;i<topOrBot+5;i++){
  2871. if(i ==topOrBot ||i==topOrBot+4){
  2872. for(int j = startPos+1;j<startPos+4;j++)
  2873. {
  2874. leds[allLEDS[i][j]].setRGB(r,g,b);
  2875. }
  2876. }
  2877. else{
  2878. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2879. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2880. }
  2881.  
  2882. }
  2883. break;
  2884. case 'p':
  2885. for(int i = topOrBot;i<topOrBot+5;i++){
  2886. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2887. if(i ==topOrBot||i==topOrBot+2){
  2888. for(int j = startPos+1;j<startPos+4;j++)
  2889. {
  2890. leds[allLEDS[i][j]].setRGB(r,g,b);
  2891. }
  2892. }
  2893. else if (i ==topOrBot+1)
  2894. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2895.  
  2896. }
  2897. break;
  2898. case 'q':
  2899. for(int i = topOrBot;i<topOrBot+5;i++){
  2900. if(i ==topOrBot){
  2901. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2902. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  2903. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  2904. }
  2905. else if(i ==topOrBot+4)
  2906. {
  2907. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  2908. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2909. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2910.  
  2911. }
  2912. else if (i == topOrBot+3){
  2913. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2914. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2915. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  2916. }
  2917. else if (i == topOrBot+2){
  2918. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2919. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2920. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2921. }
  2922. else{
  2923. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2924. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2925. }
  2926. }
  2927. break;
  2928. case 'r':
  2929. for(int i = topOrBot;i<topOrBot+5;i++){
  2930. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2931. if(i ==topOrBot||i==topOrBot+2){
  2932. for(int j = startPos+1;j<startPos+4;j++)
  2933. {
  2934. leds[allLEDS[i][j]].setRGB(r,g,b);
  2935. }
  2936. }
  2937. else if(i==topOrBot+3){
  2938. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  2939. }
  2940. else
  2941. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2942.  
  2943. }
  2944. break;
  2945. case 's':
  2946. for(int i = topOrBot;i<topOrBot+5;i++){
  2947. if(i==topOrBot){
  2948. for(int j = startPos+1;j<startPos+5;j++)
  2949. {
  2950. leds[allLEDS[i][j]].setRGB(r,g,b);
  2951. }
  2952. }
  2953. else if(i==topOrBot+1){
  2954. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2955.  
  2956. }
  2957. else if(i==topOrBot+2){
  2958. for(int j = startPos+1;j<startPos+4;j++)
  2959. {
  2960. leds[allLEDS[i][j]].setRGB(r,g,b);
  2961. }
  2962. }
  2963. else if(i==topOrBot+3){
  2964. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2965.  
  2966. }
  2967. else if(i==topOrBot+4){
  2968. for(int j = startPos;j<startPos+4;j++)
  2969. {
  2970. leds[allLEDS[i][j]].setRGB(r,g,b);
  2971. }
  2972. }
  2973. }
  2974. break;
  2975. case 't':
  2976. for(int i = topOrBot;i<topOrBot+5;i++){
  2977. if(i !=topOrBot){
  2978. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  2979. }
  2980. else{
  2981. for(int j = startPos;j<startPos+5;j++)
  2982. {
  2983. leds[allLEDS[i][j]].setRGB(r,g,b);
  2984. }
  2985. }
  2986. }
  2987. break;
  2988. case 'u':
  2989. for(int i = topOrBot;i<topOrBot+5;i++){
  2990. if(i==topOrBot+4){
  2991. for(int j = startPos+1;j<startPos+4;j++)
  2992. {
  2993. leds[allLEDS[i][j]].setRGB(r,g,b);
  2994. }
  2995. }
  2996. else{
  2997. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  2998. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  2999. }
  3000.  
  3001. }
  3002. break;
  3003. case 'v':
  3004. for(int i = topOrBot;i<topOrBot+5;i++){
  3005. if(i!=topOrBot+4&&i!=topOrBot+3){
  3006. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  3007. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3008. }
  3009. else if (i ==topOrBot+3){
  3010. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  3011. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3012. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  3013. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  3014. }
  3015. else{
  3016. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3017. }
  3018.  
  3019. }
  3020. break;
  3021. case 'w':
  3022. for(int i = topOrBot;i<topOrBot+5;i++){
  3023.  
  3024. if(i ==topOrBot+4){
  3025. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  3026. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  3027. }
  3028. else if(i !=topOrBot+3 && i !=topOrBot+2){
  3029. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  3030. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3031. }
  3032. else {
  3033. leds[allLEDS[i][startPos]].setRGB(r,g,b);
  3034. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3035. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3036. }
  3037. }
  3038. break;
  3039. case 'x':
  3040. for(int i = topOrBot;i<topOrBot+5;i++){
  3041.  
  3042. if(i ==topOrBot||i==topOrBot+4){
  3043. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3044. leds[allLEDS[i][startPos+0]].setRGB(r,g,b);
  3045. }
  3046. else if(i ==topOrBot+1 || i ==topOrBot+3){
  3047. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  3048. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  3049. }
  3050. else {
  3051. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3052. }
  3053. }
  3054. break;
  3055. case 'y':
  3056. for(int i = topOrBot;i<topOrBot+5;i++){
  3057.  
  3058. if(i ==topOrBot){
  3059. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3060. leds[allLEDS[i][startPos+0]].setRGB(r,g,b);
  3061. }
  3062. else if(i ==topOrBot+1){
  3063. leds[allLEDS[i][startPos+1]].setRGB(r,g,b);
  3064. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  3065. }
  3066. else {
  3067. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3068. }
  3069. }
  3070. break;
  3071. case 'z':
  3072. for(int i = topOrBot;i<topOrBot+5;i++){
  3073. if(i ==topOrBot||i==topOrBot+4){
  3074. for(int j = startPos;j<startPos+5;j++)
  3075. {
  3076. leds[allLEDS[i][j]].setRGB(r,g,b);
  3077. }
  3078. }
  3079. else {
  3080. leds[allLEDS[i][startPos+4-(i-topOrBot)]].setRGB(r,g,b);
  3081. }
  3082. }
  3083. break;
  3084. case '!':
  3085. for(int i = topOrBot;i<topOrBot+5;i++){
  3086. if(i!=topOrBot+3)
  3087. {
  3088. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3089. }
  3090. }
  3091. break;
  3092. case '?':
  3093. for(int i = topOrBot;i<topOrBot+5;i++){
  3094. if(i ==topOrBot){
  3095. for(int j = startPos+1;j<startPos+4;j++)
  3096. {
  3097. leds[allLEDS[i][j]].setRGB(r,g,b);
  3098. }
  3099. }
  3100. else if (i ==topOrBot+1){
  3101. leds[allLEDS[i][startPos+4]].setRGB(r,g,b);
  3102. }
  3103. else if(i == topOrBot+2){
  3104. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3105. leds[allLEDS[i][startPos+3]].setRGB(r,g,b);
  3106. }
  3107. else if (i!= topOrBot+3){
  3108. leds[allLEDS[i][startPos+2]].setRGB(r,g,b);
  3109. }
  3110. }
  3111. break;
  3112. }
  3113. }
Advertisement
Add Comment
Please, Sign In to add comment