Advertisement
Guest User

Untitled

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