IRremote laeuft nicht mit Meinen sketch

Hallo zusammen brauche mal wieder eure Hilfe

Habe einen Arduino Mega 2560 mit Ethernet Shield Module V2.0

Wenn Ich die librarie IRremote einfuege bekomme Ich folgende Fehlermeldung

core.a(Tone.cpp.o): In function __vector_13': Y:\tools\arduino-1.0.5-r2\hardware\arduino\cores\arduino/Tone.cpp:535: multiple definition of __vector_13’
IRremote\IRremote.cpp.o:Y:\tools\arduino-1.0.5-r2\libraries\IRremote/IRremote.cpp:311: first defined here
y:/tools/arduino-1.0.5-r2/hardware/tools/avr/bin/…/lib/gcc/avr/4.3.2/…/…/…/…/avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

// include the library code:
#include <LiquidCrystal.h>
#include "RTClib.h"  // a basic DS1307 library that returns time as a time_t
#include <Time.h>
#include <Wire.h> 
#include <DelayTimer.h>
#include <SD.h>

#include <IRremote.h>


File myFile; // fuersd karte
RTC_DS1307 RTC;

static float impuls=0;
static int impulsmin =0;
byte taster1val=0;
static byte taster1oldval=0;
unsigned long duration;

float impulsalt =0;
float impulsneu =0;
//float implusneu =0;
float impulszeit =0;
long leitungstunde =0;
static long sec=0;
long sec1=0;
long sec5min =0;
long diverencevonmillis =0;
static DelayTimer dtAusgabe;
static DelayTimer zeitausgabeserial;
static DelayTimer lcdausgabespeere;

char trenn[] = "; ";
char impulse[24];
byte monat;
byte tag;
byte impulstunde=0; //
int impulsrest=0;
int impulsminute=0;
byte jahre =14;
int oldimpulsmin;
static byte tastervalsdauslesen =0;
static byte tasteroldvalsdauslesen =0;
LiquidCrystal lcd(22, 23, 24, 25, 26, 27);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(20, 4);
  
   Serial.begin(9600);
  Wire.begin();
  RTC.begin();
  digitalWrite(7, HIGH);
  pinMode(7, OUTPUT);
  pinMode(53, OUTPUT);

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");



  Serial.println("Initializing SD card...");
  if (! RTC.isrunning()) 
  {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));

  }

 
  }

void loop() {
  
  digitalClockDisplay();

  fuenf_min_werte();
  lcdausgabe();
  sdkarteserialauslesen();


  taster1val = digitalRead(8);    // Wert auslesen 
    if (taster1val != taster1oldval )
  {
    if( taster1val == 1)
    {
      // normale Bearbeitung: losgelassen / gedrückt etc...
      //  oldval = tasterval;
      delay(10);              // 10 millisekunden warten, eine Änderung danach wird wieder eine echte sein.
      if(digitalRead(8) == HIGH )
      {
        impuls++;
        impulsmin++;

        digitalWrite(7, LOW); //relais fuer impulse
        // ermittlung der momentleistung anzang
        impulsneu = millis();
        impulszeit =impulsneu - impulsalt;
        impulszeit = impulszeit/1000;
        leitungstunde = 3600/impulszeit;
        // ermittlung der momentleistung ende
        tone(6,800,500);
        impulsalt = impulsneu;  

        dtAusgabe.setDelayTimer(100);
      }

      
    }
    taster1oldval = taster1val;
  }
  if(dtAusgabe.isExpired() )   
  {
    digitalWrite(7, HIGH);


  }


}

int fuenf_min_werte()
{
  
  if(sec-sec5min > 300)
  {
    sec5min = sec;
  }
 
  if (sec %300 == 0 && sec > sec1) 
  {
    impulstunde=sec/3600; // alle 5 Minuten zwischen 05:00 und 21:00
    impulsrest=sec-(impulstunde*3600);
    impulsminute=impulsrest/60;
    sec5min=sec;
    sprintf(impulse,"%02d%s%02d%s%02d%s%02d%s%02d%s%02d",jahre,trenn,monat,trenn,tag,trenn,impulstunde,trenn,impulsminute,trenn,impulsmin*12);
    Serial.println(impulse);
    oldimpulsmin=impulsmin;
    impulsmin =0;
    sec1=sec;
    myFile = SD.open("test.txt", FILE_WRITE);

    // if the file opened okay, write to it:
    if (myFile) 
    {
     // Serial.print("Writing to test.txt...");
      myFile.println(impulse);
      // close the file:
      myFile.close();
    //  Serial.println("done.");
 
  } 
    else {
      // if the file didn't open, print an error:
      Serial.println("error opening test.txt");
    }
  }
  
  sec1=sec;
}

int sdkarteauslesen()
{
  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } 
  else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }


}
int freeRam () {
  extern int __heap_start, *__brkval; 
  int v; 
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 
}

int digitalClockDisplay()
{
  DateTime now = RTC.now();
 //Serial.print(now.year(), DEC);
   
  unsigned long utime = RTC.now().unixtime(); // oder wie immer das deine RTC library macht
  sec = utime % 86400;
  monat=now.month();
  tag=now.day();
  
}
int lcdausgabe()
{
  if(lcdausgabespeere.isExpired() )
  {
    lcd.setCursor(0, 0);
    lcd.print("Wh " );                       
    lcd.setCursor(3, 0);
    lcd.print(impuls,0); 
    lcd.setCursor(0, 1);
    lcd.print("kWh/KWP " );                       
    lcd.setCursor(8, 1);
    lcd.print(impuls/1365);      
    lcd.setCursor(9, 0);
    lcd.print("Wa "); 
    lcd.setCursor(12, 0);
    lcd.print("     ");
    lcd.setCursor(12, 0);
    lcd.print(leitungstunde); 
    lcd.setCursor(13, 2);
    lcd.print("    ");
    lcd.setCursor(13, 2);
    lcd.print(impulszeit,0); 
    lcd.setCursor(0, 2);
    lcd.print("    ");
    lcd.setCursor(0, 2);
    lcd.print(freeRam()); 
    lcd.setCursor(6, 2);
    lcd.print("    ");
    lcd.setCursor(6, 2);
    lcd.print(oldimpulsmin); 
    lcd.setCursor(10, 2);
    lcd.print("    ");
    lcd.setCursor(10, 2);
    lcd.print(impulsmin); 
    lcd.setCursor(13, 1);
    lcd.print("    ");
    lcd.setCursor(13, 1);
    lcd.print(sec-sec5min); 
    lcd.setCursor(0, 3);
    lcd.print(digitalRead(9)); 
    lcdausgabespeere.setDelayTimer(1000);

  }
}

int sdkarteserialauslesen()
{

  tastervalsdauslesen = digitalRead(9);    // Wert auslesen 
  if (tastervalsdauslesen != tasteroldvalsdauslesen )
  {
     delay(10);              // 10 millisekunden warten, eine Änderung danach wird wieder eine echte sein.

    if( tastervalsdauslesen == 1)
    {
    sdkarteauslesen();  
    }
    tasteroldvalsdauslesen = tastervalsdauslesen;
  }
}

bye juergen

Hallo zusammen

Habe den Fehler gefunden

Hatte ganz den tone Befehl uebersehen

tone(6,800,500);

ohne den Befehl lauft es brauche ihn nicht umbedingt

bye juergen