Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2. ********** Arduino **********
  3.   * Laboratorio 09: Línea de 8 LEDs RGB 5050 conectado a un Arduino.
  4.  * Autor: Cristian Augusto Restrepo
  5.  * Descripción:
  6.  *   Controlar desde una interfaz en Processing, una línea de 8 LEDs RGB 5050
  7.  *   conectado a un Arduino. Nota: No alimente los +5V desde el Arduino.
  8. */
  9.  
  10. #include<FastLED.h>
  11. #define NUM_LEDS 8
  12. CRGBArray<NUM_LEDS> leds;
  13. char val;
  14.  
  15. void setup() {
  16.   FastLED.addLeds<NEOPIXEL,6>(leds, NUM_LEDS);
  17.   Serial.begin(9600);
  18.   }
  19.  
  20. void loop(){
  21.   if (Serial.available()) {
  22.     val = Serial.read();
  23.   }
  24.     if (val == 'A') {
  25.       for(int i = 0; i < NUM_LEDS/2; i++) {
  26.         leds.fadeToBlackBy(8);
  27.       leds[7] = CRGB::Yellow;
  28.       leds[6] = CRGB::Yellow;
  29.       leds[5] = CRGB::Yellow;
  30.       leds[4] = CRGB::Yellow;
  31.       leds[3] = CRGB::Blue;
  32.       leds[2] = CRGB::Blue;
  33.       leds[1] = CRGB::Red;
  34.       leds[0] = CRGB::Red;
  35.         FastLED.delay(2);
  36.       }
  37.     }
  38.     if (val == 'B'){
  39.       static uint8_t hue;
  40.       for(int i = 0; i < NUM_LEDS; i++) {
  41.         leds.fadeToBlackBy(8);
  42.         leds[i] = CHSV(hue++,255,255);
  43.         FastLED.delay(2);
  44.       }
  45.     }
  46.     if (val == 'C'){
  47.       for(int i = 0; i < NUM_LEDS/2; i++) {
  48.         leds.fadeToBlackBy(8);
  49.       leds[0] = CRGB::Blue;
  50.       leds[1] = CRGB::Blue;
  51.       leds[2] = CRGB::Blue;
  52.       leds[3] = CRGB::Blue;
  53.       leds[4] = CRGB::Black;
  54.       leds[5] = CRGB::Black;
  55.       leds[6] = CRGB::Black;
  56.       leds[7] = CRGB::Black;
  57.         FastLED.delay(95);
  58.       leds[0] = CRGB::Black;
  59.       leds[1] = CRGB::Black;
  60.       leds[2] = CRGB::Black;
  61.       leds[3] = CRGB::Black;
  62.       leds[4] = CRGB::Red;
  63.       leds[5] = CRGB::Red;
  64.       leds[6] = CRGB::Red;
  65.       leds[7] = CRGB::Red;
  66.         FastLED.delay(95);
  67.       leds[0] = CRGB::Blue;
  68.       leds[1] = CRGB::Blue;
  69.       leds[2] = CRGB::Blue;
  70.       leds[3] = CRGB::Blue;
  71.       leds[4] = CRGB::Black;
  72.       leds[5] = CRGB::Black;
  73.       leds[6] = CRGB::Black;
  74.       leds[7] = CRGB::Black;
  75.         FastLED.delay(95);
  76.       leds[0] = CRGB::Black;
  77.       leds[1] = CRGB::Black;
  78.       leds[2] = CRGB::Black;
  79.       leds[3] = CRGB::Black;
  80.       leds[4] = CRGB::Red;
  81.       leds[5] = CRGB::Red;
  82.       leds[6] = CRGB::Red;
  83.       leds[7] = CRGB::Red;
  84.         FastLED.delay(95);
  85.       leds[0] = CRGB::Black;
  86.       leds[1] = CRGB::Black;
  87.       leds[2] = CRGB::Black;
  88.       leds[3] = CRGB::Black;
  89.       leds[4] = CRGB::Black;
  90.       leds[5] = CRGB::Black;
  91.       leds[6] = CRGB::Black;
  92.       leds[7] = CRGB::Black;
  93.         FastLED.delay(25);
  94.       leds[0] = CRGB::WhiteSmoke;
  95.       leds[1] = CRGB::White;
  96.       leds[2] = CRGB::WhiteSmoke;
  97.       leds[3] = CRGB::White;
  98.       leds[4] = CRGB::WhiteSmoke;
  99.       leds[5] = CRGB::White;
  100.       leds[6] = CRGB::WhiteSmoke;
  101.       leds[7] = CRGB::White;
  102.         FastLED.delay(50);
  103.       leds[0] = CRGB::Black;
  104.       leds[1] = CRGB::Black;
  105.       leds[2] = CRGB::Black;
  106.       leds[3] = CRGB::Black;
  107.       leds[4] = CRGB::Black;
  108.       leds[5] = CRGB::Black;
  109.       leds[6] = CRGB::Black;
  110.       leds[7] = CRGB::Black;
  111.         FastLED.delay(25);
  112.       }
  113.     }
  114.     if (val != 'A' && val != 'B' && val != 'C'){
  115.       for(int i = 0; i < NUM_LEDS/2; i++) {
  116.         leds.fadeToBlackBy(8);
  117.         leds[i] = CHSV(val,255,255);
  118.         leds(NUM_LEDS/2,NUM_LEDS-1) = leds(NUM_LEDS/2 - 1 ,0);
  119.         FastLED.delay(2);
  120.       }
  121.     }
  122.     delay(10);
  123. }