Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Things to do:
- 5 different inputs = 5 different outputs 50%
- comment ALL THE CODE!!!!!!!!!!!!!!!!!!
- Make it fancy
- if done with decoration, then make adjustment leds flash when changing states*/
- #include <FastLED.h>
- #define NUM_LEDS_ADJUSTMENT 30
- #define NUM_LEDS_DECORATION 300
- #define ADJUSTMENT_PIN 3
- #define DECORATION_PIN 4
- #define BRIGHTNESS 75
- #define LED_TYPE NEOPIXEL
- #define COLOR_ORDER GRB
- #define UPDATES_PER_SECOND 25
- CRGB adjustment[NUM_LEDS_ADJUSTMENT];
- CRGB decoration[NUM_LEDS_DECORATION];
- CRGBPalette16 currentPalette;
- TBlendType currentBlending;
- const int pin5 = 5;
- const int pin6 = 6;
- const int pin9 = 9;
- void setup() {
- delay(3000);
- FastLED.addLeds<LED_TYPE, ADJUSTMENT_PIN>(adjustment, NUM_LEDS_ADJUSTMENT);
- FastLED.addLeds<LED_TYPE, DECORATION_PIN>(decoration, NUM_LEDS_DECORATION);
- FastLED.setBrightness(BRIGHTNESS);
- currentPalette = RainbowStripeColors_p;
- currentBlending = BLEND;
- //Input must be INPUT_PULLUP to eliminate interferance.
- pinMode(pin5, INPUT_PULLUP);
- pinMode(pin6, INPUT_PULLUP);
- pinMode(pin9, INPUT_PULLUP);
- }
- //make all getMode requests have the same pin tables, or else compoliation will fail
- int getMode(int d5, int d6, int d9) {
- int rtn = 0;
- if (d5 == 1 && d6 == 1 && d9 == 1) {
- rtn = 0;
- }
- if (d5 == 0 && d6 == 1 && d9 == 1) {
- rtn = 1;
- }
- if (d5 == 1 && d6 == 0 && d9 == 0) {
- rtn = 6;
- }
- if (d5 == 0 && d6 == 0 && d9 == 0) {
- rtn = 7;
- }
- return rtn;
- }
- void FillUnusedLEDsWithRainbowStripeColors( uint8_t colorIndex)
- {
- uint8_t brightness = 255;
- for( int i = 0; i < NUM_LEDS_DECORATION; i++) {
- decoration[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
- colorIndex += 3;
- }
- }
- void loop() {
- //MUST SET PINS TO digitalRead(pin#)
- int d5 = digitalRead(pin5);
- int d6 = digitalRead(pin6);
- int d9 = digitalRead(pin9);
- int mode = getMode(d5, d6, d9);
- static uint8_t startIndex = 0;
- startIndex = startIndex + 1; /* motion speed */
- FillUnusedLEDsWithRainbowStripeColors(startIndex);
- switch (mode)
- //call adjustment on a singulear basis, red = off, green=triggered, black=unused,off
- {
- case 0:
- //FastLED.showColor(CRGB::Red);
- adjustment[0] = CRGB::Red;
- adjustment[1] = CRGB::Red;
- adjustment[2] = CRGB::Red;
- adjustment[3] = CRGB::Red;
- adjustment[4] = CRGB::Red;
- adjustment[5] = CRGB::Red;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- adjustment[10] = CRGB::Black;
- adjustment[11] = CRGB::Black;
- adjustment[12] = CRGB::Black;
- adjustment[13] = CRGB::Black;
- adjustment[14] = CRGB::Black;
- adjustment[15] = CRGB::Black;
- adjustment[16] = CRGB::
- FastLED.show();
- //delay(50);
- break;
- case 1:
- adjustment[0] = CRGB::Green;
- adjustment[1] = CRGB::Green;
- adjustment[2] = CRGB::Red;
- adjustment[3] = CRGB::Red;
- adjustment[4] = CRGB::Red;
- adjustment[5] = CRGB::Red;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(50);
- break;
- case 2:
- adjustment[0] = CRGB::Red;
- adjustment[1] = CRGB::Red;
- adjustment[2] = CRGB::Green;
- adjustment[3] = CRGB::Green;
- adjustment[4] = CRGB::Red;
- adjustment[5] = CRGB::Red;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(500);
- break;
- case 3:
- adjustment[0] = CRGB::Green;
- adjustment[1] = CRGB::Green;
- adjustment[2] = CRGB::Green;
- adjustment[3] = CRGB::Green;
- adjustment[4] = CRGB::Red;
- adjustment[5] = CRGB::Red;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(500);
- break;
- case 4:
- adjustment[0] = CRGB::Red;
- adjustment[1] = CRGB::Red;
- adjustment[2] = CRGB::Red;
- adjustment[3] = CRGB::Red;
- adjustment[4] = CRGB::Green;
- adjustment[5] = CRGB::Green;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(500);
- break;
- case 5:
- adjustment[0] = CRGB::Green;
- adjustment[1] = CRGB::Green;
- adjustment[2] = CRGB::Red;
- adjustment[3] = CRGB::Red;
- adjustment[4] = CRGB::Green;
- adjustment[5] = CRGB::Green;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(500);
- break;
- case 6:
- adjustment[0] = CRGB::Red;
- adjustment[1] = CRGB::Red;
- adjustment[2] = CRGB::Green;
- adjustment[3] = CRGB::Green;
- adjustment[4] = CRGB::Green;
- adjustment[5] = CRGB::Green;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(500);
- break;
- case 7:
- adjustment[0] = CRGB::Green;
- //decoration[0] = CRGB::Blue;
- adjustment[1] = CRGB::Green;
- adjustment[2] = CRGB::Green;
- adjustment[3] = CRGB::Green;
- adjustment[4] = CRGB::Green;
- adjustment[5] = CRGB::Green;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- FastLED.show();
- //delay(500);
- break;
- /*case 8:
- adjustment[0] = CRGB::Red;
- adjustment[1] = CRGB::Red;
- adjustment[2] = CRGB::Red;
- adjustment[3] = CRGB::Red;
- adjustment[4] = CRGB::Red;
- adjustment[5] = CRGB::Red;
- adjustment[6] = CRGB::Red;
- adjustment[7] = CRGB::Red;
- adjustment[8] = CRGB::Red;
- adjustment[9] = CRGB::Red;
- adjustment[10] = CRGB::Red;
- adjustment[11] = CRGB::Red;
- adjustment[12] = CRGB::Red;
- adjustment[13] = CRGB::Red;
- adjustment[14] = CRGB::Green;
- adjustment[15] = CRGB::Green;
- FastLED.show();
- //delay(500);
- break;*/
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment