Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FastLED.h> //add
- #include <IRremote.h>
- #if FASTLED_VERSION < 3001000
- #error "Requires FastLED 3.1 or later; check github for latest code."
- #endif
- #define LED_TYPE WS2812B
- #define COLOR_ORDER GRB
- #define BRIGHTNESS 255
- #define NUM_LEDS 899
- #define DATA_PIN 5
- const int RECV_PIN = 3;
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- unsigned long key_value = 0;
- CRGB leds[NUM_LEDS]; //Add
- void setup(){
- Serial.begin(9600);
- irrecv.enableIRIn();
- irrecv.blink13(true);
- FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS)
- .setCorrection(TypicalLEDStrip)
- .setDither(BRIGHTNESS < 255);
- // set master brightness control
- FastLED.setBrightness(BRIGHTNESS);
- }
- /////////////////////////////////// Setting up various zones
- void zone1(int red, int green, int blue){
- for (int i=0;i<=25;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- void zone2(int red, int green, int blue){
- for (int i=26;i<=56;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- void zone3(int red, int green, int blue){
- for (int i=57;i<=197;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- void zone4(int red, int green, int blue){
- for (int i=198;i<=407;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- void zone5(int red, int green, int blue){
- for (int i=408;i<=599;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- void zone6(int red, int green, int blue){
- for (int i=600;i<=707;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- void zone7(int red, int green, int blue){
- for (int i=708;i<=899;i++){
- leds[i].r = red;
- leds[i].g = green;
- leds[i].b = blue;
- }
- }
- ////////////////////////////////////////////////////////////////////// What the buttons do!!
- void presetOff(){
- zone1(0,0,0);
- zone2(0,0,0);
- zone3(0,0,0);
- zone4(0,0,0);
- zone5(0,0,0);
- zone6(0,0,0);
- zone7(0,0,0);
- FastLED.show();
- }
- void preset0(){
- // This function draws rainbows with an ever-changing,
- // widely-varying set of parameters.
- // infinite loop
- for ( ; ; ) {
- static uint16_t sPseudotime = 0;
- static uint16_t sLastMillis = 0;
- static uint16_t sHue16 = 0;
- uint8_t sat8 = beatsin88( 87, 220, 250);
- uint8_t brightdepth = beatsin88( 341, 96, 224);
- uint16_t brightnessthetainc16 = beatsin88( 203, (25 * 256), (40 * 256));
- uint8_t msmultiplier = beatsin88(147, 23, 60);
- uint16_t hue16 = sHue16;//gHue * 256;
- uint16_t hueinc16 = beatsin88(113, 1, 3000);
- uint16_t ms = millis();
- uint16_t deltams = ms - sLastMillis ;
- sLastMillis = ms;
- sPseudotime += deltams * msmultiplier;
- sHue16 += deltams * beatsin88( 400, 5,9);
- uint16_t brightnesstheta16 = sPseudotime;
- for( uint16_t i = 0 ; i < NUM_LEDS; i++) {
- hue16 += hueinc16;
- uint8_t hue8 = hue16 / 256;
- brightnesstheta16 += brightnessthetainc16;
- uint16_t b16 = sin16( brightnesstheta16 ) + 32768;
- uint16_t bri16 = (uint32_t)((uint32_t)b16 * (uint32_t)b16) / 65536;
- uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536;
- bri8 += (255 - brightdepth);
- CRGB newcolor = CHSV( hue8, sat8, bri8);
- uint16_t pixelnumber = i;
- pixelnumber = (NUM_LEDS-1) - pixelnumber;
- nblend( leds[pixelnumber], newcolor, 64);
- }
- //////////////////////// To Exit Loop
- ///////////////////////
- FastLED.show();
- }
- }
- void preset1(){
- zone1(160,0,0);
- zone2(0,0,160);
- zone3(0,0,0);
- zone4(0,0,0);
- FastLED.show();
- }
- void preset2(){
- zone1(0,160,0);
- zone2(0,0,160);
- zone3(0,0,0);
- zone4(0,0,0);
- FastLED.show();
- }
- void preset3(){
- zone1(100,160,0);
- zone2(100,0,160);
- zone3(150,0,20);
- zone4(0,200,0);
- zone5(255,200,0);
- zone6(0,200,200);
- zone7(0,150,0);
- FastLED.show();
- }
- void preset4(){
- }
- void preset5(){
- }
- void preset6(){
- }
- void preset7(){
- }
- void preset8(){
- }
- void preset9(){
- }
- void brightnessUp()
- {
- for (int i = 0; i < NUM_LEDS; i++) {
- if (leds[i].r > 0)
- leds[i].r = leds[i].r + 10;
- if (leds[i].g > 0)
- leds[i].g = leds[i].g + 10;
- if (leds[i].b > 0)
- leds[i].b = leds[i].b + 10;
- }
- //To set the LEDs
- FastLED.show();
- }
- void brightnessDown()
- {
- for (int i = 0; i < NUM_LEDS; i++) {
- if (leds[i].r > 10)
- leds[i].r = leds[i].r - 10;
- if (leds[i].g > 10)
- leds[i].g = leds[i].g - 10;
- if (leds[i].b > 10)
- leds[i].b = leds[i].b - 10;
- }
- //To set the LEDs
- FastLED.show();
- }
- //////////////////////////// Actual Code
- void loop(){
- if (irrecv.decode(&results)){
- if (results.value == 0XFFFFFFFF)
- results.value = key_value;
- switch(results.value){
- case 0xFFA25D:
- // Serial.println("On/Off");
- presetOff();
- break;
- case 0xFF629D:
- // Serial.println("Vol+");
- brightnessUp();
- break;
- case 0xFFE21D:
- // Serial.println("Func/Stop");
- break;
- case 0xFF22DD:
- // Serial.println("|<<");
- break;
- case 0xFF02FD:
- // Serial.println(">||");
- break ;
- case 0xFFC23D:
- // Serial.println(">>|");
- break ;
- case 0xFFE01F:
- // Serial.println("-");
- brightnessDown();
- break ;
- case 0xFFA857:
- // Serial.println("Vol-");
- brightnessDown();
- break ;
- case 0xFF906F:
- // Serial.println("+");
- brightnessUp();
- break ;
- case 0xFF6897:
- // Serial.println("0");
- preset0();
- FastLED.show();
- break ;
- case 0xFF9867:
- // Serial.println("EQ");
- break ;
- case 0xFFB04F:
- // Serial.println("St/Rept");
- break ;
- case 0xFF30CF:
- // Serial.println("1");
- preset1();
- break ;
- case 0xFF18E7:
- // Serial.println("2");
- preset2();
- break ;
- case 0xFF7A85:
- // Serial.println("3");
- preset3();
- break ;
- case 0xFF10EF:
- // Serial.println("4");
- break ;
- case 0xFF38C7:
- // Serial.println("5");
- break ;
- case 0xFF5AA5:
- // Serial.println("6");
- break ;
- case 0xFF42BD:
- // Serial.println("7");
- break ;
- case 0xFF4AB5:
- // Serial.println("8");
- break ;
- case 0xFF52AD:
- // Serial.println("9");
- break ;
- }
- key_value = results.value;
- irrecv.resume();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment