Guest User

Untitled

a guest
Jan 22nd, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.62 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2. #include "FastLED.h"
  3. #include <Wire.h>
  4.  
  5. #define RX_PIN 2
  6. #define TX_PIN 3
  7. #define DATA_PIN 5
  8. #define NUM_LEDS 50
  9.  
  10. CRGB leds[NUM_LEDS];
  11. SoftwareSerial mySerial(RX_PIN, TX_PIN); // RX, TX
  12.  
  13. char c,d;
  14. byte divider, indicator;
  15. void setup() {
  16.   FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
  17.  
  18.   // Turn on default colour (warm white)
  19.   setAllColour(30,192,255);
  20.   FastLED.setBrightness(0); FastLED.show();
  21.   for (byte i = 0 ; i < 255; i++) {
  22.     FastLED.setBrightness(i); FastLED.show();
  23.     delay(5);
  24.   }
  25.  
  26.   Serial.begin(9600);
  27.   mySerial.begin(9600);
  28.  
  29. }
  30.  
  31. void loop() {
  32. //  delay(10);
  33.   if (mySerial.available()){
  34.     d=mySerial.read();
  35.     delay(10);
  36.     switch (d) {
  37.       case '1':
  38.         Serial.write("Warm White\n");
  39.         mySerial.write("Warm White\n");
  40.        
  41.         setAllColour(30,192,255);
  42.         break;
  43.       case '2':
  44.         Serial.write("Cold White\n");
  45.         mySerial.write("Cold White\n");
  46.         setAllColour(164,32,255);
  47.         break;
  48.       case '3':
  49.         Serial.write("Random\n");
  50.         mySerial.write("Random\n");
  51.         setAllColour(random8(),255,255);
  52.         break;
  53.       case '4':
  54.         Serial.write("None\n");
  55.         mySerial.write("None\n");
  56.         break;
  57.       case '5':
  58.         Serial.write("None\n");
  59.         mySerial.write("None\n");
  60.         break;
  61.       case '6':
  62.         Serial.write("None\n");
  63.         mySerial.write("None\n");
  64.         break;
  65.       case '7':
  66.         Serial.write("Cyclone\n");
  67.         mySerial.write("Cyclone\n");
  68.         while (true) {
  69.           FastLED.setBrightness(255); FastLED.show();
  70.           for (byte i = 0; i < NUM_LEDS; i++) {
  71.             leds[i] = CRGB::Red;
  72.             leds[i - 1] = CHSV(0,255,128);
  73.             leds[i - 2] = CHSV(0,255,96);
  74.             leds[i - 3] = CHSV(0,255,64);            
  75.             leds[i - 4] = CHSV(0,255,32);            
  76.             leds[i - 5] = CHSV(0,255,16);            
  77.             leds[i - 6] = CHSV(0,255,8);            
  78.             FastLED.show();
  79.             leds[i] = CRGB::Black;
  80.             leds[i - 1] = CRGB::Black;
  81.             leds[i - 2] = CRGB::Black;
  82.             leds[i - 4] = CRGB::Black;
  83.             leds[i - 5] = CRGB::Black;
  84.             leds[i - 6] = CRGB::Black;
  85.            
  86.             delay(10);
  87.             if (mySerial.read() == '7') {
  88.               mySerial.write("Cyclone Stop\n");
  89.               asm volatile ("  jmp 0");
  90.             }
  91.           }
  92.           for (byte i = NUM_LEDS; i > 0; i--) {            
  93.             leds[i] = CRGB::Red;
  94.             leds[i + 1] = CHSV(0,255,128);
  95.             leds[i + 2] = CHSV(0,255,96);
  96.             leds[i + 3] = CHSV(0,255,64);            
  97.             leds[i + 4] = CHSV(0,255,32);            
  98.             leds[i + 5] = CHSV(0,255,16);            
  99.             leds[i + 6] = CHSV(0,255,8);            
  100.             FastLED.show();
  101.             leds[i] = CRGB::Black;
  102.             leds[i + 1] = CRGB::Black;
  103.             leds[i + 2] = CRGB::Black;
  104.             leds[i + 4] = CRGB::Black;
  105.             leds[i + 5] = CRGB::Black;
  106.             leds[i + 6] = CRGB::Black;
  107.            
  108.             delay(10);
  109.             if (mySerial.read() == '7') {
  110.               mySerial.write("Cyclone Stop\n");
  111.               asm volatile ("  jmp 0");
  112.             }
  113.           }
  114.           FastLED.setBrightness(0);FastLED.show();
  115.           delay(250);
  116.         }
  117.         break;
  118.       case '8':
  119.         Serial.write("Rainbow running ... (Press again to stop)\n");
  120.         mySerial.write("Rainbow running ...(Press again to stop)\n");
  121.         FastLED.setBrightness(255); FastLED.show();
  122.         indicator = 0;
  123.         divider = 255 / NUM_LEDS;
  124.         delay(10);
  125.         //while (!mySerial.available()) {
  126.         while (true) {
  127.           for (byte i = 0; i < NUM_LEDS; i++) {
  128.             leds[i] = CHSV((indicator * divider),255,255);
  129.             indicator++;
  130.           }
  131.           FastLED.show();
  132.           delay(80);
  133.           if (mySerial.read() == '8') {
  134.             mySerial.write("Rainbow Stop\n");
  135.             break;
  136.           }            
  137.         }
  138.         break;
  139.       case '9':
  140.         Serial.write("Fading off\n");
  141.         mySerial.write("Fading off\n");
  142.         if (FastLED.getBrightness() > 0) {
  143.           for (byte i = 255; i > 0; i--) {  
  144.             FastLED.setBrightness(i); FastLED.show();
  145.             delay(5);
  146.           }
  147.         }
  148.         break;
  149.     }        
  150.   }
  151. }
  152.  
  153. void setAllColour(byte hue, byte sat, byte val){
  154.   FastLED.setBrightness(255); FastLED.show();
  155.   for (byte i = 0; i < NUM_LEDS; i++) {  
  156.     leds[i] = CHSV(hue,sat,val);
  157.   }
  158.   FastLED.show();
  159. }
Advertisement
Add Comment
Please, Sign In to add comment