/* ********** Arduino ********** * Laboratorio 09: Línea de 8 LEDs RGB 5050 conectado a un Arduino. * Autor: Cristian Augusto Restrepo * Descripción: * Controlar desde una interfaz en Processing, una línea de 8 LEDs RGB 5050 * conectado a un Arduino. Nota: No alimente los +5V desde el Arduino. */ #include #define NUM_LEDS 8 CRGBArray leds; char val; void setup() { FastLED.addLeds(leds, NUM_LEDS); Serial.begin(9600); } void loop(){ if (Serial.available()) { val = Serial.read(); } if (val == 'A') { for(int i = 0; i < NUM_LEDS/2; i++) { leds.fadeToBlackBy(8); leds[7] = CRGB::Yellow; leds[6] = CRGB::Yellow; leds[5] = CRGB::Yellow; leds[4] = CRGB::Yellow; leds[3] = CRGB::Blue; leds[2] = CRGB::Blue; leds[1] = CRGB::Red; leds[0] = CRGB::Red; FastLED.delay(2); } } if (val == 'B'){ static uint8_t hue; for(int i = 0; i < NUM_LEDS; i++) { leds.fadeToBlackBy(8); leds[i] = CHSV(hue++,255,255); FastLED.delay(2); } } if (val == 'C'){ for(int i = 0; i < NUM_LEDS/2; i++) { leds.fadeToBlackBy(8); leds[0] = CRGB::Blue; leds[1] = CRGB::Blue; leds[2] = CRGB::Blue; leds[3] = CRGB::Blue; leds[4] = CRGB::Black; leds[5] = CRGB::Black; leds[6] = CRGB::Black; leds[7] = CRGB::Black; FastLED.delay(95); leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; leds[4] = CRGB::Red; leds[5] = CRGB::Red; leds[6] = CRGB::Red; leds[7] = CRGB::Red; FastLED.delay(95); leds[0] = CRGB::Blue; leds[1] = CRGB::Blue; leds[2] = CRGB::Blue; leds[3] = CRGB::Blue; leds[4] = CRGB::Black; leds[5] = CRGB::Black; leds[6] = CRGB::Black; leds[7] = CRGB::Black; FastLED.delay(95); leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; leds[4] = CRGB::Red; leds[5] = CRGB::Red; leds[6] = CRGB::Red; leds[7] = CRGB::Red; FastLED.delay(95); leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; leds[4] = CRGB::Black; leds[5] = CRGB::Black; leds[6] = CRGB::Black; leds[7] = CRGB::Black; FastLED.delay(25); leds[0] = CRGB::WhiteSmoke; leds[1] = CRGB::White; leds[2] = CRGB::WhiteSmoke; leds[3] = CRGB::White; leds[4] = CRGB::WhiteSmoke; leds[5] = CRGB::White; leds[6] = CRGB::WhiteSmoke; leds[7] = CRGB::White; FastLED.delay(50); leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; leds[4] = CRGB::Black; leds[5] = CRGB::Black; leds[6] = CRGB::Black; leds[7] = CRGB::Black; FastLED.delay(25); } } if (val != 'A' && val != 'B' && val != 'C'){ for(int i = 0; i < NUM_LEDS/2; i++) { leds.fadeToBlackBy(8); leds[i] = CHSV(val,255,255); leds(NUM_LEDS/2,NUM_LEDS-1) = leds(NUM_LEDS/2 - 1 ,0); FastLED.delay(2); } } delay(10); }