Guest User

Untitled

a guest
Feb 16th, 2015
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.42 KB | None | 0 0
  1. /*Things to do:
  2. 5 different inputs = 5 different outputs 50%
  3. comment ALL THE CODE!!!!!!!!!!!!!!!!!!
  4. Make it fancy
  5. if done with decoration, then make adjustment leds flash when changing states*/
  6.  
  7. #include <FastLED.h>
  8. #define NUM_LEDS_ADJUSTMENT 30
  9. #define NUM_LEDS_DECORATION 300
  10. #define ADJUSTMENT_PIN 3
  11. #define DECORATION_PIN 4
  12. #define BRIGHTNESS 75
  13. #define LED_TYPE NEOPIXEL
  14. #define COLOR_ORDER GRB
  15. #define UPDATES_PER_SECOND 25
  16. CRGB adjustment[NUM_LEDS_ADJUSTMENT];
  17. CRGB decoration[NUM_LEDS_DECORATION];
  18. CRGBPalette16 currentPalette;
  19. TBlendType currentBlending;
  20. const int pin5 = 5;
  21. const int pin6 = 6;
  22. const int pin9 = 9;
  23.  
  24. void setup() {
  25. delay(3000);
  26. FastLED.addLeds<LED_TYPE, ADJUSTMENT_PIN>(adjustment, NUM_LEDS_ADJUSTMENT);
  27. FastLED.addLeds<LED_TYPE, DECORATION_PIN>(decoration, NUM_LEDS_DECORATION);
  28. FastLED.setBrightness(BRIGHTNESS);
  29. currentPalette = RainbowStripeColors_p;
  30. currentBlending = BLEND;
  31. //Input must be INPUT_PULLUP to eliminate interferance.
  32. pinMode(pin5, INPUT_PULLUP);
  33. pinMode(pin6, INPUT_PULLUP);
  34. pinMode(pin9, INPUT_PULLUP);
  35. }
  36. //make all getMode requests have the same pin tables, or else compoliation will fail
  37. int getMode(int d5, int d6, int d9) {
  38. int rtn = 0;
  39.  
  40. if (d5 == 1 && d6 == 1 && d9 == 1) {
  41. rtn = 0;
  42. }
  43.  
  44. if (d5 == 0 && d6 == 1 && d9 == 1) {
  45. rtn = 1;
  46. }
  47.  
  48. if (d5 == 1 && d6 == 0 && d9 == 0) {
  49. rtn = 6;
  50. }
  51.  
  52. if (d5 == 0 && d6 == 0 && d9 == 0) {
  53. rtn = 7;
  54. }
  55.  
  56. return rtn;
  57. }
  58.  
  59. void FillUnusedLEDsWithRainbowStripeColors( uint8_t colorIndex)
  60. {
  61. uint8_t brightness = 255;
  62.  
  63. for( int i = 0; i < NUM_LEDS_DECORATION; i++) {
  64. decoration[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
  65. colorIndex += 3;
  66. }
  67. }
  68.  
  69. void loop() {
  70. //MUST SET PINS TO digitalRead(pin#)
  71. int d5 = digitalRead(pin5);
  72. int d6 = digitalRead(pin6);
  73. int d9 = digitalRead(pin9);
  74. int mode = getMode(d5, d6, d9);
  75.  
  76. static uint8_t startIndex = 0;
  77. startIndex = startIndex + 1; /* motion speed */
  78. FillUnusedLEDsWithRainbowStripeColors(startIndex);
  79.  
  80. switch (mode)
  81. //call adjustment on a singulear basis, red = off, green=triggered, black=unused,off
  82. {
  83. case 0:
  84. //FastLED.showColor(CRGB::Red);
  85. adjustment[0] = CRGB::Red;
  86. adjustment[1] = CRGB::Red;
  87. adjustment[2] = CRGB::Red;
  88. adjustment[3] = CRGB::Red;
  89. adjustment[4] = CRGB::Red;
  90. adjustment[5] = CRGB::Red;
  91. adjustment[6] = CRGB::Red;
  92. adjustment[7] = CRGB::Red;
  93. adjustment[8] = CRGB::Red;
  94. adjustment[9] = CRGB::Red;
  95. adjustment[10] = CRGB::Black;
  96. adjustment[11] = CRGB::Black;
  97. adjustment[12] = CRGB::Black;
  98. adjustment[13] = CRGB::Black;
  99. adjustment[14] = CRGB::Black;
  100. adjustment[15] = CRGB::Black;
  101. adjustment[16] = CRGB::
  102.  
  103.  
  104. FastLED.show();
  105. //delay(50);
  106. break;
  107. case 1:
  108. adjustment[0] = CRGB::Green;
  109. adjustment[1] = CRGB::Green;
  110. adjustment[2] = CRGB::Red;
  111. adjustment[3] = CRGB::Red;
  112. adjustment[4] = CRGB::Red;
  113. adjustment[5] = CRGB::Red;
  114. adjustment[6] = CRGB::Red;
  115. adjustment[7] = CRGB::Red;
  116. adjustment[8] = CRGB::Red;
  117. adjustment[9] = CRGB::Red;
  118. FastLED.show();
  119. //delay(50);
  120. break;
  121. case 2:
  122. adjustment[0] = CRGB::Red;
  123. adjustment[1] = CRGB::Red;
  124. adjustment[2] = CRGB::Green;
  125. adjustment[3] = CRGB::Green;
  126. adjustment[4] = CRGB::Red;
  127. adjustment[5] = CRGB::Red;
  128. adjustment[6] = CRGB::Red;
  129. adjustment[7] = CRGB::Red;
  130. adjustment[8] = CRGB::Red;
  131. adjustment[9] = CRGB::Red;
  132. FastLED.show();
  133. //delay(500);
  134. break;
  135. case 3:
  136. adjustment[0] = CRGB::Green;
  137. adjustment[1] = CRGB::Green;
  138. adjustment[2] = CRGB::Green;
  139. adjustment[3] = CRGB::Green;
  140. adjustment[4] = CRGB::Red;
  141. adjustment[5] = CRGB::Red;
  142. adjustment[6] = CRGB::Red;
  143. adjustment[7] = CRGB::Red;
  144. adjustment[8] = CRGB::Red;
  145. adjustment[9] = CRGB::Red;
  146. FastLED.show();
  147. //delay(500);
  148. break;
  149. case 4:
  150. adjustment[0] = CRGB::Red;
  151. adjustment[1] = CRGB::Red;
  152. adjustment[2] = CRGB::Red;
  153. adjustment[3] = CRGB::Red;
  154. adjustment[4] = CRGB::Green;
  155. adjustment[5] = CRGB::Green;
  156. adjustment[6] = CRGB::Red;
  157. adjustment[7] = CRGB::Red;
  158. adjustment[8] = CRGB::Red;
  159. adjustment[9] = CRGB::Red;
  160. FastLED.show();
  161. //delay(500);
  162. break;
  163. case 5:
  164. adjustment[0] = CRGB::Green;
  165. adjustment[1] = CRGB::Green;
  166. adjustment[2] = CRGB::Red;
  167. adjustment[3] = CRGB::Red;
  168. adjustment[4] = CRGB::Green;
  169. adjustment[5] = CRGB::Green;
  170. adjustment[6] = CRGB::Red;
  171. adjustment[7] = CRGB::Red;
  172. adjustment[8] = CRGB::Red;
  173. adjustment[9] = CRGB::Red;
  174. FastLED.show();
  175. //delay(500);
  176. break;
  177. case 6:
  178. adjustment[0] = CRGB::Red;
  179. adjustment[1] = CRGB::Red;
  180. adjustment[2] = CRGB::Green;
  181. adjustment[3] = CRGB::Green;
  182. adjustment[4] = CRGB::Green;
  183. adjustment[5] = CRGB::Green;
  184. adjustment[6] = CRGB::Red;
  185. adjustment[7] = CRGB::Red;
  186. adjustment[8] = CRGB::Red;
  187. adjustment[9] = CRGB::Red;
  188. FastLED.show();
  189. //delay(500);
  190. break;
  191. case 7:
  192. adjustment[0] = CRGB::Green;
  193. //decoration[0] = CRGB::Blue;
  194. adjustment[1] = CRGB::Green;
  195. adjustment[2] = CRGB::Green;
  196. adjustment[3] = CRGB::Green;
  197. adjustment[4] = CRGB::Green;
  198. adjustment[5] = CRGB::Green;
  199. adjustment[6] = CRGB::Red;
  200. adjustment[7] = CRGB::Red;
  201. adjustment[8] = CRGB::Red;
  202. adjustment[9] = CRGB::Red;
  203. FastLED.show();
  204. //delay(500);
  205. break;
  206. /*case 8:
  207. adjustment[0] = CRGB::Red;
  208. adjustment[1] = CRGB::Red;
  209. adjustment[2] = CRGB::Red;
  210. adjustment[3] = CRGB::Red;
  211. adjustment[4] = CRGB::Red;
  212. adjustment[5] = CRGB::Red;
  213. adjustment[6] = CRGB::Red;
  214. adjustment[7] = CRGB::Red;
  215. adjustment[8] = CRGB::Red;
  216. adjustment[9] = CRGB::Red;
  217. adjustment[10] = CRGB::Red;
  218. adjustment[11] = CRGB::Red;
  219. adjustment[12] = CRGB::Red;
  220. adjustment[13] = CRGB::Red;
  221. adjustment[14] = CRGB::Green;
  222. adjustment[15] = CRGB::Green;
  223. FastLED.show();
  224. //delay(500);
  225. break;*/
  226. }
  227. }
Advertisement
Add Comment
Please, Sign In to add comment