decodificador de infrarrojo con control de tv

buenas, estoy con problema al momento de utilizar cualquier control de TV, tengo una libreria que encontre por aqui, mi idea es que con el control poder controlar la intensidad de un led

utilizando la siguiente programación me arroja en el monitor serial un código inicial que es único por cada botón y luego (si dejo el mismo botón presionado) envía otro código y este último es el mismo en todos los botones

utilizando un if me funciona pero solo el primer dato que es único y yo necesito que por cada botón ejecute una función única pero el problema es que cada botón hace lo que se muestra en la imagen osea que necesito algun codigo que cuando detecte el botón 1 y deje presionado encienda un LED por ejemplo y si presiono y dejo presionado el botón 2 encienda otro LED

el código es el siguiente:

#include <IRremote.h>    // importa libreria IRremote

int SENSOR = 11;              // sensor KY-022 a pin digital 11  
IRrecv irrecv(SENSOR);    // establece al 11 para objeto irrecv
decode_results codigo;    // crea objeto codigo de la clase decode_results

void setup() { 
 Serial.begin(9600);     // inicializa comunicacion serie a 9600 bps
 irrecv.enableIRIn();    // inicializa recepcion de datos
} 

void loop() { 
 if (irrecv.decode(&codigo)) {   // si existen datos ya decodificados
   Serial.println(codigo.value, HEX);  // imprime valor en hexadecimal en monitor
   irrecv.resume();      // resume la adquisicion de datos
 }
 delay (100);        // breve demora de 100 ms.
}

desde ya les agradezco mucho.

saludos, Julio.

monitor serial.PNG

monitor serial.PNG