Arduino LED dimmer with IR remote control
First prove that the IR remote control is working.  

You should be able to see the IR LED light using the camera on a smart phone or a digital camera.

If you have a device that the IR remote control works with, use that to test it.

Then simplify the program.
Try something which shows it is receiving an IR signal.

#include &lt;IRremote.h&gt;

const int RECV_PIN = 11; // the pin where you connect the output pin of TSOP4838
const int led = 3;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);   // you can comment this line
  irrecv.enableIRIn();  // Start the receiver
  pinMode(led, OUTPUT);
}

void loop() {
  if (irrecv.decode(&amp;results)) {
    digitalWrite(led, HIGH);
    Serial.println(results.value, DEC);
    irrecv.resume(); // Receive the next value
  } else {
    digitalWrite(led, LOW);
  }
}


If this works, there is evidence that the IR remote is working. So a likely problem is the codes sent for each of '1' to '9' is different from the codes the program is trying to match. For example, if(value == 6630) is looking for a code of 6630, but if the IR remote control doesn't send that when one of its '1' to '9' buttons is pressed, then a button will not be recognised.

To find out which codes are being sent by the IR remote control, open the Arduino IDE's serial monitor, and see which codes are printed when you press each of the '1' to '9' buttons. Press them one at a time, and make a note of the values, then repeat several times to ensure they are reasonably reliable.

Once you have these codes, update the program, to match, and it should work. For example change if(value == 6630){ brightness=25; } to have the code for IR remote control button '1'. 

The program in the question uses brightness=25 to brightness=255.

Use a smaller range initially, as very low levels of brightness might be hard to see.

I suggest starting at brightness=100 for '1' to brightness=255 for '9' initially, and then extend that down if 100 is too bright.

Human eye sensitivity isn't linear, but logarithmic, so getting good brightness levels might be quite difficult.

You might have a slightly easier to manage program if you could put your codes and values in a table. I would normally use an array of  structs, but it might be easier to understand the code with two simple arrays:

int button_codes[10] = {
  0, // unused
  6630, // '1'
  // other codes
  2550, // '9'
};

unsigned char brightness[10] = {
  0, // unused
  100, //'1'
  // other matching brightness values
  255,
};

// ...

void loop() {
  if (irrecv.decode(&amp;results)) {
    Serial.println(results.value, DEC);
    for (int i=0; i&lt;0; i+=1) {
      if (results.value == button_codes[i]) {  // find a matching code
        analogWrite(led, brightness[i]);    // set LED to corresponding value
      }
    }
    irrecv.resume(); // Receive the next value
  }
}


This has the small benefit that all of the brightness values are in one place. Also, it might be useful to use the brightness table to allow you to use, say, up and down buttons to increase and decrease the LEDs brightness.

If this test program doesn't work, and the lED doesn't light when an IR key is pressed, then the obvious options to eliminate are:


IR remote control isn't working properly
IR remote control is working but it's modulation frequency is
sufficiently different from the IR receiver that it is being ignored
(not very likely)
The wiring is broken
The program is broken