Invalid header file в tinkerkad после подключения IRremote.h

Пока не добавила IRremote.h всё работало. Решила сделать другой проект с одним микросервоприводом, i2c lcd и ИК-датчиком, там всё работает. Я не могу найти проблему, помогите, пожалуйста. Ниже будет ссылка на тикеркад с этим проектом, но я не знаю, можно ли публиковать тут ссылки, так что вставлю и код.

#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <IRremote.h>

LiquidCrystal_I2C lcd(0x27,16,2); // установки дисплея
// установка микросервоприводов
Servo servoGas;
Servo servoLock;

// держат в себе значения с датчиков
float light, temp, gas, IK, sonar, lastTemp = 0.0, lastLight = 0.0;
// подтверждает включение сигнализации
bool alarm = false;
// счётчик для количества очисток экрана после выкл сигнализации
int count = 1; 
// кол-во срабатываний ик датчика
int c = 0;

void setup()
{
  lcd.init();
  lcd.backlight(); // вкл подсветку дисплея

  servoGas.attach(13);
  servoLock.attach(11);

  pinMode(A1, INPUT); // температура
  pinMode(A0, INPUT); // освещение
  pinMode(A2, INPUT); // газовая безопасность
  pinMode(9, OUTPUT); // мотор
  pinMode(8, OUTPUT); // ламппа
  pinMode(4,OUTPUT); // светодиод
  pinMode(2, INPUT); // датчик расстояни
  
  IrReceiver.begin(7, true); // пульт
  
  Serial.begin(9600);
}

void loop()
{
  // чтение данных с датчика температуры
  int vol = analogRead(A0); 
  // чтение данных с фоторезистора
  light = analogRead(A1);

  // преобразование значения с датчика тем-ры  в градусы цельсия
  temp = (((vol * 5.0) / 1024.0) - 0.5) * 100;
  
  if (gas < 150 && IK == 0 && !alarm)
  {
    // если нынешняя и прошлая темп-ры не равны или сигнализация откл 
    if (temp != lastTemp || !alarm){
      tempLCD();
      lastTemp = temp;
    }
	// если нынешний и прошлый свет не равны или сигнализация откл 
    if (light != lastLight || !alarm){
      lightLCD();
      lastLight = light;
    }
  }else 
    // если сигнализация выкл и lcd ни разу не очищался после откл сигнализации
    if (alarm && count == 0 && gas < 150 && IK == 0)
  	{
		lcd.clear();
    	count++;
    	alarm = false;
 	}
  
  gasLCD();
  robber();
  translateIR();
}

// вывод температуры на экран и врашение двигателя постоянного тока
void tempLCD(){
  if (temp < 10) {
    String str = "TEMP: -" + String(temp) + "   ";
    lcd.setCursor(0, 0); 
    lcd.print(str);
    analogWrite(9, 0);
  } else {
    String str = "TEMP: " + String(temp) + "   ";
    lcd.setCursor(0, 0); 
    lcd.print(str);
    if (temp < 20) analogWrite(9, 0);
    else if (temp < 35) analogWrite(9, 50); 
    else if (temp < 50) analogWrite(9, 150); 
    else if (temp < 65) analogWrite(9, 200); 
    else analogWrite(9, 255);
  }

}

// вывод света на экран и вкл/выкл лампочки
void lightLCD(){
  light = 100 - ((light - 344.0)/6.73);
  if (light < 75) {
    digitalWrite(8, HIGH); 
  } else { 
    digitalWrite(8, LOW);
  }
  String str = "SVET: " + String(light) + "%   ";
  lcd.setCursor(0, 1); 
  lcd.print(str);
}

// проверка утечки газа
void gasLCD(){
  gas = analogRead(A2);

  if (gas >= 150) {
    tone(12, 300);
    delay(200);

    digitalWrite(4, HIGH);
    delay(500);
    digitalWrite(4, LOW);
    delay(500);
    
    lcd.clear();
    String str = "ATTENTION!";
  	lcd.setCursor(0, 0); 
  	lcd.print(str);
    
    str = "GAS POLLUTION";
  	lcd.setCursor(0, 1); 
  	lcd.print(str);
    
    servoGas.write(90); 
     
    alarm = true;
    count = 0;
  } 
  else if (gas <= 150) {
    noTone(12);
    servoGas.write(0); 
  }
}

// проверка движения у ИК-датчика
void robber(){
  IK = digitalRead(2);
  delay(100);
  if (IK==1)
  {
  	tone(12, 300);
    lcd.clear();
    String str = "ATTENTION! MOVE-";
  	lcd.setCursor(0, 0); 
  	lcd.print(str);
    
    str = "MENT IR SENSOR";
  	lcd.setCursor(0, 1); 
  	lcd.print(str);
     
    alarm = true;
    count = 0;
    c++;
    
    servoLock.write(90);
  } else
  if (IK==0 && c == 0) {
    noTone(12);
    servoLock.write(0);
  } else
  if (IK==0) {
    noTone(12);
  }
}

void translateIR(){
    if (IrReceiver.decode()) { 
	Serial.println(IrReceiver.decodedIRData.command);
    IrReceiver.resume(); 
  }
}

https://www.tinkercad.com/things/4jc75HRYdQ7

То есть мы должны ещё и зарегистрироваться ??? Может вы просто текст ошибки нам скопируете ?

Там же вроде библиотеки из списка в нём имеющихся выбираются? Так если этому тинкеркаду его же библиотека не нравится, то лучше его и спросить - почему?

видимо конфликтуют по Таймерам?