Hello, I'm hoping someone would be able to help me with an issue i've been having trying to make an IR LED project. I've got 3 LED strips being controlled off the same remote and i'd like to be able to control them individually, by pressing a certain button on the controller (DIY1, hex 0xFF30CF) which will then allow me to control strip one, and use the colours on the remote exclusively for this strip, and then when I select strip 2 using the 'DIY2', (hex 0xFFB04F) button on the remote, it allow exclusive access to strip two, and the same again for strip 3
Below is the code i've started, I understand how to control the strips if there was only one, or all together (by adding a command underneath the relevant button), but i'm struggling to work out how to split the strips into sections and control them individually. Any help is much appreciated!
#include <IRremote.h> //include IR library
#include <FastLED.h> //include LED library
#define NUM_LEDS1 18 //say how many leds is in row 1
#define NUM_LEDS2 18 //say how many leds is in row 2
#define NUM_LEDS3 18 //say how many leds is in row 3
#define ROW1DATA 5 //say what pin is signal for row 1
#define ROW2DATA 3 //say what pin is signal for row 2
#define ROW3DATA 6 //say what pin is signal for row 3
const int RECV_PIN = 8; //say what pin IR sensor is plugged into
const int LEDPIN = 13;//say what pin blue STATUS led is plugged into
IRrecv irrecv(RECV_PIN); // IR
decode_results results; // IR
unsigned long key_value = 0; // IR
CRGB leds1[NUM_LEDS1]; //link leds1 with how many leds are in it
CRGB leds2[NUM_LEDS2]; //link leds2 with how many leds are in it
CRGB leds3[NUM_LEDS3]; //link leds3 with how many leds are in it
void setup(){
Serial.begin(9600); //set baud rate for serial monitor
irrecv.enableIRIn(); // IR
irrecv.blink13(true); // IR
pinMode(LEDPIN, OUTPUT); //set signal led as an output
FastLED.addLeds<NEOPIXEL, ROW1DATA>(leds1, NUM_LEDS1); //setup for row 1
FastLED.addLeds<NEOPIXEL, ROW2DATA>(leds2, NUM_LEDS2); //setup for row 2
FastLED.addLeds<NEOPIXEL, ROW3DATA>(leds3, NUM_LEDS3); //setup for row 3
}
void loop(){
if (irrecv.decode(&results)){
if (results.value == 0XFFFFFFFF)
results.value = key_value;
switch(results.value){
case 0xFF02FD:
Serial.println("ON/OFF");
break ;
case 0xFF827D:
Serial.println("PAUSE");
break ;
case 0xFFBA45:
Serial.println("LOWERBRIGHTNESS");
break ;
case 0xFF3AC5:
Serial.println("RAISEBRIGHTNESS");
break ;
case 0xFF22DD:
Serial.println("PUREWHITE");
break ;
case 0xFFA25D:
Serial.println("PUREBLUE");
break ;
case 0xFF9A65:
Serial.println("PUREGREEN");
break ;
case 0xFF1AE5:
Serial.println("PURERED");
break ;
case 0xFF12ED:
Serial.println("PUREPINK");
break ;
case 0xFF926D:
Serial.println("DARKBLUE");
break ;
case 0xFFAA55:
Serial.println("LIGHTGREEN");
break ;
case 0xFF2AD5:
Serial.println("LIGHTRED");
break ;
case 0xFF32CD:
Serial.println("LIGHTPINK");
break ;
case 0xFFB24D:
Serial.println("DARKPURPLE");
break ;
case 0xFF8A75:
Serial.println("LIGHTTURQUIOISE");
break ;
case 0xFF0AF5:
Serial.println("ORANGE");
break ;
case 0xFFF807:
Serial.println("LIGHTBLUE");
break ;
case 0xFF7887:
Serial.println("PURPLE");
break ;
case 0xFFB847:
Serial.println("DARKTURQUIOISE");
break ;
case 0xFF38C7:
Serial.println("LIGHTORANGE");
break ;
case 0xFFD827:
Serial.println("LIGHTESTBLUE");
break ;
case 0xFF58A7:
Serial.println("LIGHTPURPLE");
break ;
case 0xFF9867:
Serial.println("DARKESTTURQUOISE");
break ;
case 0xFF18E7:
Serial.println("YELLOW");
break ;
case 0xFFE817:
Serial.println("QUICK");
break ;
case 0xFF6897:
Serial.println("BLUEUPARROW");
break ;
case 0xFFA857:
Serial.println("GREENUPARROW");
break ;
case 0xFF28D7:
Serial.println("REDUPARROW");
break ;
case 0xFFC837:
Serial.println("SLOW");
break ;
case 0xFF48B7:
Serial.println("BLUEDOWNARROW");
break ;
case 0xFF8877:
Serial.println("GREENDOWNARROW");
break ;
case 0xFF08F7:
Serial.println("REDDOWNARROW");
break ;
case 0xFFF00F:
Serial.println("AUTO");
break ;
case 0xFF708F:
Serial.println("DIY3");
break ;
case 0xFFB04F:
Serial.println("DIY2");
break ;
case 0xFF30CF:
Serial.println("DIY1");
break ;
case 0xFFD02F:
Serial.println("FLASH");
break ;
case 0xFF50AF:
Serial.println("DIY6");
break ;
case 0xFF906F:
Serial.println("DIY5");
break ;
case 0xFF10EF:
Serial.println("DIY4");
break ;
case 0xFFE01F:
Serial.println("FADE7");
break ;
case 0xFF609F:
Serial.println("FADE3");
break ;
case 0xFFA05F:
Serial.println("JUMP7");
break ;
case 0xFF20DF:
Serial.println("JUMP3");
break ;
}
key_value = results.value;
irrecv.resume();
}
}
Thank you!