Tonos con mando a distancia - problema

Ante que nada. Un saludo a todos, soy un nuevo Arduinomaniaco!!! yeahh!!

Vamos al tajo! despues de hacer blinkear milquinientos leds, he comprado un sensor de infrarrojos y lo he conectado al arduino junto con un pequeño altavoz.

Pues bien. He declarado tres tonos.Con los botones 1 ,2 y 3 del mando. Cuando presiono el boton 1, suena el tono 1 (de 440Hz), hasta aqui todo bien. despues presiono cualquiera de los 3 botones y nada. En el puerto Serial empieza a poner "0" cada vez que pulso un boton.

Y no se porque. ¿Alguna idea?

CODIGO:

#include <IRremote.h>
#include <IRremoteInt.h>

#define TONO1 0xE078FE2
#define TONO2 0xE078FD2
#define TONO3 0xE078FF2

int RECV_PIN = 6;

int altavoz=10;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
pinMode(altavoz, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}

void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
delay(20);
irrecv.resume();
}

if(results.value==TONO1)
{
tone(altavoz,500);
delay(1000);
noTone(altavoz);
}
if(results.value==TONO2)
{
tone(altavoz,600);
delay(1000);
noTone(altavoz);
}
if(results.value==TONO3)
{
tone(altavoz,800);
delay(1000);
noTone(altavoz);
}
results.value=0;
}

la función TONE y la librería IR no se llevan muy bien no se exactamente el por qué.
Cuando usas TONE se corrompe el programa y no lee ya bien el código infrarrojos.
Para solucionarlo, al final de skech añade lo siguiente:

results.value = 0;
irrecv.enableIRIn();
delay(200);
con esto se soluciona