#include <FastLED.h>
#define NUM_LEDS 8
#define LED_PIN 2
#define LED_PIN1 3
#define LED_PIN2 4
#define LED_PIN3 5
int pot=0;
int pot2=0;
CRGB leds[NUM_LEDS];
CRGB leds1[NUM_LEDS];
CRGB leds2[NUM_LEDS];
CRGB leds3[NUM_LEDS];
uint8_t hue = 0;
int y= 10;
uint8_t tempIndex = 0;
void setup() {
pinMode(A0, INPUT);
pinMode(A1, INPUT);
Serial.begin(9600);
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.addLeds<WS2812B, LED_PIN1, GRB>(leds1, NUM_LEDS);
FastLED.addLeds<WS2812B, LED_PIN2, GRB>(leds2, NUM_LEDS);
FastLED.addLeds<WS2812B, LED_PIN3, GRB>(leds3, NUM_LEDS);
FastLED.setBrightness(255);
}
void loop()
{
pot=analogRead(A0);
pot=map(pot,0,1024,0,6);
Serial.println(pot);
pot2=analogRead(A1);
uint8_t brightness=map(pot2,0,1023,50,255);
Serial.println(brightness);
FastLED.setBrightness(brightness);
if(pot==0)
{
for (int i = 0; i < NUM_LEDS; i++)
{
//leds[i] = CHSV(hue, 255, 255);
leds[i] = CHSV(hue + (i * y), 255, 255);
leds1[i] = CHSV(hue + (i * y), 255, 255);
leds2[i] = CHSV(hue + (i * y), 255, 255);
leds3[i] = CHSV(hue + (i * y), 255, 255);
}
EVERY_N_MILLISECONDS(30)
{
hue++;
}
FastLED.show();
}
else if(pot==1)
{
fill_solid(leds, NUM_LEDS, CRGB::Red);
fill_solid(leds1, NUM_LEDS, CRGB::Red);
fill_solid(leds2, NUM_LEDS, CRGB::Red);
fill_solid(leds3, NUM_LEDS, CRGB::Red);
FastLED.show();
}
else if(pot==2)
{
EVERY_N_MILLISECONDS(50) {
// Create a new HSV color for led[0]
leds[0] = CHSV(160, random8(), random8(100, 255));
leds1[0] = CHSV(160, random8(), random8(100, 255));
leds2[0] = CHSV(160, random8(), random8(100, 255));
leds3[0] = CHSV(160, random8(), random8(100, 255));
// Copy each pixel to the next one, starting at the far end
// thereby 'moving' the pattern along the strip
for (int i = NUM_LEDS - 1; i > 0; i--) {
leds[i] = leds[i - 1];
leds1[i] = leds[i - 1];
leds2[i] = leds[i - 1];
leds3[i] = leds[i - 1];
}
}
FastLED.show();
}
else if(pot==3)
{
/* uint16_t pot2 = analogRead(A1);
uint8_t brightness = map(pot2, 0, 1023, 150, 250);
FastLED.setBrightness(brightness);*/
// Create a new HSV color for led[0]
leds[0] = CHSV(80, random8(), random8(100,255));
leds1[0] = CHSV(120, random8(), random8(100,255));
leds2[0] = CHSV(160, random8(), random8(100,255));
leds3[0] = CHSV(200, random8(), random8(100,255));
EVERY_N_MILLISECONDS(30) {
// Copy each pixel to the next one, starting at the far end
// thereby 'moving' the pattern along the strip
for (int i = NUM_LEDS - 1; i > 0; i--) {
leds[i] = leds[i - 1];
leds1[i] = leds1[i - 1];
leds2[i] = leds2[i - 1];
leds3[i] = leds3[i - 1];
}
}
FastLED.show();
}
else if(pot==4)
{
fill_gradient_RGB(leds, NUM_LEDS, CRGB::Magenta, CRGB::Yellow);
fill_gradient_RGB(leds1, NUM_LEDS, CRGB::Magenta, CRGB::Yellow);
fill_gradient_RGB(leds2, NUM_LEDS, CRGB::Magenta, CRGB::Yellow);
fill_gradient_RGB(leds3, NUM_LEDS, CRGB::Magenta, CRGB::Yellow);
FastLED.show();
}
else if(pot==5)
{
fill_gradient_RGB(leds, NUM_LEDS, CRGB::Red, CRGB::Orange, CRGB::Yellow, CRGB::Green);
fill_gradient_RGB(leds1, NUM_LEDS, CRGB::Red, CRGB::Yellow, CRGB::Green, CRGB::Blue);
fill_gradient_RGB(leds2, NUM_LEDS, CRGB::Red, CRGB::Yellow, CRGB::Green, CRGB::Blue);
fill_gradient_RGB(leds3, NUM_LEDS, CRGB::Red, CRGB::Yellow, CRGB::Green, CRGB::Blue);
FastLED.show();
}
else if(pot==6)
{
fill_rainbow(leds, NUM_LEDS, 0, 255 / NUM_LEDS);
fill_rainbow(leds1, NUM_LEDS, 0, 255 / NUM_LEDS);
fill_rainbow(leds2, NUM_LEDS, 0, 255 / NUM_LEDS);
fill_rainbow(leds3, NUM_LEDS, 0, 255 / NUM_LEDS);
FastLED.show();
}
}