#include <IRremote.h>

long mem = 0; //     .
int led = 0;
IRrecv irrecv(3); //      .
decode_results results; //      .

void setup()
{
  Serial.begin(9600); //      9600 .
  Serial.setTimeout(10); //       parseInt().
  irrecv.enableIRIn(); //  .
  pinMode(2, OUTPUT); // 2   ,  .
  digitalWrite(2, HIGH);
}

void loop()
{
  if (irrecv.decode(&results)) //   -   
  {
    if (results.value != -1) //       (-1)
    {
      mem = results.value;  //      mem
      Serial.println(mem, HEX);  //   .     .
      delay(500); //  0,5 .
    }
    else Serial.println(mem, HEX); // (   )   mem  .
    irrecv.resume(); //   
  }
  delay(30);

  //         .

  if (Serial.available()) //    .    ,
  {
    led = Serial.parseInt();  //      .
    if (led == 11) digitalWrite(5, LOW); //   11,   ,
    else if (led == 12) digitalWrite(5, HIGH); //  12, .
    else if (led == 21) digitalWrite(4, LOW); //  21,   ,
    else if (led == 22) digitalWrite(4, HIGH); //  22  .
  }
}