Вот пока вот так сделал!
PHP код:
#include <IRremote.h>
IRrecv irrecv(9);
decode_results results
//#include <DallasTemperature.h>
//DallasTemperature tempSensor;
#include <LiquidCrystal.h>
//#include <MsTimer2.h>
LiquidCrystal lcd(12117654);

unsigned long time;
unsigned long taxometr 0;
unsigned long dinaimpulsov 0;
unsigned long ValSpCurr 0;// скорость на lcd
unsigned long ir 1641447551;//первая кнопка
int irper 0// переменная для икпульта
int tmp37 0;
int kpa 0;
int volts 0;
int pboost 0;
int atmos 0;
int senstvaz =0;
int ds// сенсор ds18b20
int val;
int mapp;
int peakrpm 0;
int peakspeed 0;
int taxo 0;
int count 0;

float peakboost 0;
float boostvoltage;
byte bytes[8]; 

void setup() 
 {
  
lcd.begin(162);
  
pinMode(2INPUT); 
  
pinMode(3INPUT); 
   
// * LOW когда на порту LOW
   // * CHANGE , с LOW на HIGH и наоборот
   // * RISING  с LOW на HIGH
   // * FALLING  с HIGH на LOW
  
attachInterrupt(0int_onRISING);
  
//attachInterrupt(1, inton, FALLING);
//  MsTimer2::set(30000, flash); // таймер будет срабатывать через каждые 500ms 
//  MsTimer2::start();//запустить таймер
  //tempSensor.begin(10);
  
Serial.begin(115200);
 
//irrecv.enableIRIn(); // включить приемник
 
pinMode(9,INPUT);
 
digitalWrite(13,LOW);
}
void loop() 
{

  
/////////////////ТАХОМЕТР///////////////////////////////////////
if (taxometr 6000)
{
 
taxo = (80000000 taxometr);
}
else 
{
  
taxo 0;
}  
if (
taxo peakrpm//pikrpm
  
{  
    
peakrpm taxo;
  }
//////////////// СПИДОМЕТР//////////////////////////////////////
    
dinaimpulsov pulseIn(3HIGH70000);  // Считывание длительности положительного импульса
    
ValSpCurr = (650000 dinaimpulsov); // Перевод в км/ч
  
if (dinaimpulsov 75000 || ValSpCurr 350)
  {
    
ValSpCurr 0;
  } 
  if (
ValSpCurr peakspeed//pikspeed
  
{  
    
peakspeed ValSpCurr;
  }
///////////////////////IR/////////////////////////////////////
if (irper == 0)
{
  if ((
digitalRead(9) == 0)) 
    {
    
//  delay(5);
      
digitalWrite(13,HIGH);
     
// delay(10);
    
irrecv.enableIRIn(); // включить приемник 
    
irper 1;
    
ir 0;
    
lcd.clear();
    
lcd.print("menu: 1 ili 2"),
    
//delay(10);
    
digitalWrite(13,LOW);
  
//  goto label;
    
    

}   
  
//  else 
  //  {
   //   digitalWrite(13,LOW);
    
   //  TCCR2A = TCCR2B = 0;
     // TCCR2B=0x00;
 //   }
//  irrecv.resume();

//label:
//digitalWrite(13,LOW);
if (irrecv.decode(&results)) 
  {
    if ((
results.value 0) && (results.value 0xFFFFFFFF))
    {
      
ir results.value;
     
// digitalWrite(13,LOW);
    //  lcd.clear();
     // lcd.print(ir);
  //  irper = 0; 
  
if (results.value == 1641447551 || results.value == 1641431231)
  {
    
TCCR2A TCCR2B 0;
    
irper 0
  } 
    }
       
irrecv.resume();
      
// irper = 0;
     // TCCR2A = TCCR2B = 0;
       
     //  digitalWrite(13,LOW);
  
}

 
 
mapp analogRead(2);//map-sensor 
 
kpa = ((mapp*(0.0045)*(51.0)+16));// killopaskali
 
boost = ((mapp*(0.0045)*(51.0)+16)) / 100 -1//kilopaskali v bar
 
atmos =map(mapp358384735780);// atmosfernoe davlenie
 
if (kpa peakboost//pikboost
  
{  
    
peakboost kpa;
    
pboost peakboost;
  }
 
voltage 14.9 1024.0 analogRead(1); // volts
 
volts voltage 10;
 
val analogRead(0);// температура воды ваз 
 
if (val >= && val <= 269)
{
   
senstvaz map(val0269, -50, -1);
}
else if (
val >= 270 && val <= 503)
{
   
senstvaz map(val270503019) + 2;
}
else if (
val >= 504 && val <= 821)
{
   
senstvaz map(val5048212055) + 2;
}
else if (
val >= 822 && val <= 875)
{
   
senstvaz map(val8228755665) + 2;
}
else if (
val >= 876 && val <= 930)
{
   
senstvaz map(val8769306680) + 2;
}
else if (
val >= 931 && val <= 946)
{
   
senstvaz map(val9319468185) + 2;
}
else if (
val >= 947 && val <= 965)
{
   
senstvaz map(val9479658697) + 2;
}
else if (
val >= 966 && val <= 1002)
{
   
senstvaz map(val966100298126) + 2;
}
else if (
val >= 1003 && val <= 1015)
{
   
senstvaz map(val10031015127140) + 2;
}
 
tmp37 = (analogRead(3) * 5.0 1024.0) / 0.02// tmp37
// digitalWrite(13,LOW);
/////////////////////////////////////////////
/*
if (digitalRead(9) <= 0)
  {
   ds = (tempSensor.getTemperature()),
   lcd.clear(), 
   lcd.print(ds),
   delay(1000);
  }
*/
if (Serial.available() > 0//priem ot kompa
 
{  
  
int  inByte Serial.read();
  if (
inByte ==1
    {
      
peakboost 0;
      
inByte =0;
    }
 }
 
if (
digitalRead(8) <= 0
  {
  
peakboost 0//sbros pikboosta, sbrasivati na minus
  
peakrpm 0;
  
peakspeed 0;
  
lcd.clear();
 
// lcd.setCursor(0, 0);
  
lcd.print("PEAKS SBROS");
  
delay(30);
  
  
  }
 
////////////////////////////////////////////////////////////////
 
if (ir == 1641447551//первая кнопка
 
{
 
//  irper = 0; 
   
lcd.clear(); 
   
lcd.setCursor(00);
 
//lcd.print(taxometr);
   
lcd.print("RPM ");
   
lcd.print(taxo);
   
lcd.setCursor(90);
   
lcd.print(taxometr);
   
//lcd.print("V ");
 //  lcd.print(voltage,1);
   
lcd.setCursor(01);
   
lcd.print("SPD ");
   
lcd.print(ValSpCurr);
   
lcd.setCursor(81);
  
// lcd.print("BT ");
   
lcd.print(dinaimpulsov);
 }
 if (
ir == 1641431231)
 {
  
// irper = 0; 
   
lcd.clear(); 
   
lcd.setCursor(00);
   
lcd.print("PBST ");
   
lcd.print(pboost);
   
lcd.setCursor(81);
    
lcd.print(ValSpCurr);
//  lcd.print(taxometr);
  //lcd.print(" ");
 // lcd.print(mapp);
 // lcd.print(" ");
// lcd.print(atmos);      
 // lcd.print(" ");
 // lcd.print(taxo);
  
  //lcd.print(dinaimpulsov);
//  lcd.print(" ");
 
}
 
// lcd.print(boost);
//  lcd.print(" ");
 // lcd.print(kpa);
//  lcd.print(ir);
 // lcd.print(pboost);
 // lcd.print(" ");
  //lcd.print(tmp37);
 //////////////////////////////////////////////////////////////////
  
bytes[0]=(volts); //volts
  
bytes[1]=(kpa); //turbo
  
bytes[2]=(pboost); //pboost
  
bytes[3]=(senstvaz); //senstvaz
  // bytes[4] = result & 255;                     
  // bytes[5] = (result & 768) >> 8;
  
bytes[4] = taxo 0xFF// преобразовать в 4-байта  
  
bytes[5] = (taxo 0xFF00) >> 8;  
  
bytes[6] = (taxo 0xFF0000) >> 16
  
bytes[7] = (taxo 0xFF000000) >> 24;  
     
  
Serial.writebytes,8);      
   
 
// delay(50);
   
  
bytes[0] = 0;
  
bytes[1] = 0;       
  
bytes[2] = 0
  
bytes[3] = 0
  
bytes[4] = 0
  
bytes[5] = 0;
  
bytes[6] = 0;
  
bytes[7] = 0;
      
}
/*
void  inton() 



*/
void  int_on() 


count++; //увеличить счетчик volatile

if (count >= 4)
    {
      
taxometr micros()-time;  //время прихода 6-ти импульсов
      
time micros(); //обнулить
     // taxometrrr = count;
      
count 0;
    }  



//void flash() //обработка прерывания таймера
//{
  
//} 
Я пультом переключаю экраны на дисплее, а то не вмещается всё!

Получается так, нажимаю один раз на пульт (можно на любую кнопку) - подключается приёмник и библиотека (начинает работать таймер2 и пожирать ресурсы), появляется меню на дисплее, нажимаю второй раз на нужную кнопку -
функция "if (irrecv.decode(&results)) " отрабатывает нажатие, и выключает таймер2.