/*
********** 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<FastLED.h>
#define NUM_LEDS 8
CRGBArray<NUM_LEDS> leds;
char val;
void setup() {
FastLED.addLeds<NEOPIXEL,6>(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);
}