problema tone() con libreria IRremote.h e Servo.h

Ciao a tutti,

Andando avanti cin il mio boe bot della parallax ho riscontrato questo problema:
#include <Servo.h>
#include<Arduino.h>
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
unsigned int IR_val = 0;
unsigned int IR_val1 = 0;
decode_results results;
int led_1 = 2 ;
int led_2 = 3 ;
int led_3 = 4 ;
int led_4 = 5 ;
int i = 0;
int Val_PWM = 0;
unsigned long last = millis();
Servo servoRight; // Declare right servo
Servo servoLeft;

void setup(){

Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
pinMode(led_4, OUTPUT);
servoRight.attach(12);
servoLeft.attach(10);
servoRight.writeMicroseconds(1500); // 1.5 ms stay still signal
servoLeft.writeMicroseconds(1500);
**tone(6, 3000, 1000); **
delay(1000);

}

void loop() {

if (irrecv.decode (&results)){
IR_val = (results.value);
Serial.print ("valore_variabile = "); //debug per vedere codici telecomando
Serial.println(IR_val);
irrecv.resume( ); // Receive the next value
last = millis(); // setto timer per spegimento led
servoRight.attach(12);
servoLeft.attach(10);
if (IR_val == 33822 || IR_val == 1054) { // se testo su == 1 accendo il led_1
digitalWrite(led_1, HIGH);
servoRight.writeMicroseconds(1300);
servoLeft.writeMicroseconds(1700);
}

if(IR_val == 33823 || IR_val == 1055) { // se testo gi? == 1 accendo il led_2
digitalWrite(led_2, HIGH);
servoRight.writeMicroseconds(1700);
servoLeft.writeMicroseconds(1300);
}

if(IR_val == 33824 || IR_val == 1056) { // se testo SX == 1 accendo il led_3
digitalWrite(led_3, HIGH);
servoRight.writeMicroseconds(1300);
servoLeft.writeMicroseconds(1300);
}

if(IR_val == 33825 || IR_val == 1057) { // se testo DX == 1 accendo il led_3
digitalWrite(led_4, HIGH);
servoRight.writeMicroseconds(1700);
servoLeft.writeMicroseconds(1700);
}
}

if (millis() - last > 100) {//se non ricevo niente per 100msec Fermo tutto
digitalWrite(led_1, LOW);
digitalWrite(led_2, LOW);
digitalWrite(led_3, LOW);
digitalWrite(led_4, LOW);
servoRight.writeMicroseconds(1500); // 1.5 ms stay still signal
servoLeft.writeMicroseconds(1500);

se metto il comando tone mi dà questi errori:

Compiling ‘boe_bot’ for ‘Arduino Mega 2560 or Mega ADK’
core.a(Tone.cpp.o)* : In function __vector_13' Tone.cpp : multiple definition of __vector_13’
IRremote.cpp.o : first defined here
ld.exe : it will not work with multiple definitions
avr-objcopy* : No such file
avr-objcopy* : No such file
Couldn’t determine program size: D:\Arduino and processing\arduino-1.0-windows\arduino-1.0\hardware\tools\avr\bin\avr-size: ‘C:\Users\Davide\AppData\Local\VMicro\Arduino\Builds\boe_bot\mega2560\boe_bot.hex’: No such file

Qualcuno sà dirmi il perchè???

L'errore che ottieni è per informarti che stai cercando di ridefinire più volte lo stesso vettore di interrupt. irRemote e/o Servo e/o Tone probabilmente usano lo stesso timer/interrupt causando il problema. Ergo, non puoi usare tutte e 3 le librerie contemporaneamente.

Capito, immaginavo.

Peccato.

Grazie mille