Problema con IR remote

Ciao a tutti,
voglio realizzare una striscia led controllata con il telecomando della televisione o comunque a controllo remoto; ho realizzato tutto il circuito con il ricevitore infrarossi remoto e il transstor che pilota la striscia led e tutto funziona correttamente: riesco a far accendere e spengere la striscia led in base al tasto scelto del telecomando. il problema sorge nel punto in cui voglio variare la luminosità della striscia led: quando uso l’istruzione analogWrite(led, 150); ad esempio, anzichè accendersi ad una luminosità minore di quella nominale, si spenge e basta…se invece al posto di 150 metto il valore 255, cioè il valore massimo analogico, allora si accende. in sintesi il problema è questo: se metto qualsiasi valore analogico la striscia led si spenge tranne se i valori sono 0 o 255. ho pensato che per qualche strano motivo non funzionasse la modulazione pwm ma ho provato a caricare lo sketch di esempio “fading” e la striscia varia perfettamente la luminosità quindi il circuito funziona se non è controllato in remoto. questo è lo sketch che uso:

#include <IRremote.h>

int RECV_PIN = 10;
int led = 11;
IRrecv irrecv(RECV_PIN);

decode_results results;

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

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0xA70) { // A70 è il codice che ricevo da un tasto del telecomando
analogWrite(led,150); //se al posto di qualsiasi valore analogico metto 255 si accende
}
irrecv.resume();
}
}

Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO… Grazie.
Qui una serie di link utili, non inerenti al tuo problema:

Il codice DEVI racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Il PWM si appoggia ai timer, il pin 11 dovrebbe usare il timer2
MI pare anche la IRRemote di base si appoggia al timer2.
Puoi modificare nel file IRRemoteInt.h per far lavorare la remote su timer1.

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc
#else
	//#define IR_USE_TIMER1   // tx = pin 9
	#define IR_USE_TIMER2     // tx = pin 3