problema con ricevitore ir

ho fatto un programmino , che dovrebbe fare in modo tale che quando schiaccio il tasto ok un led dovrebbe illuminarsi , ma lo fa con qualsiasi tasto e nn riesco a capire il perchè
HELP

#include <IRremote.h>

const int RECV_PIN = 6;

IRrecv irrecv(RECV_PIN);

decode_results results;

 long  b,si,de,su, ok=(2155819215,DEC);

void setup()
{
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
  irrecv.enableIRIn(); //Avvia ricezione
 
  si=(2155821255,DEC);
  de=(2155806975,DEC);
  su=(2155811055,DEC);
  Serial.println(ok);
    Serial.println(su,DEC);
}

void loop() {
  if (irrecv.decode(&results)) 
  {
 
  
      b=(results.value,DEC);
    if(b==ok){
     digitalWrite(13,HIGH);
     Serial.println(1);
     delay(50);
     
     }

       Serial.println(results.value, DEC);
    Serial.println(ok,DEC);
    Serial.println(su,DEC);
    irrecv.resume(); 
    
 
  }
  
}

Questa sintassi viene accettata ma non ha senso:

si=(2155821255,DEC);

Cosa dovrebbe fare secondo te questo pezzo di codice (non sò interpretarlo) ?

qwertyroby:

#include <IRremote.h>

const byte RECV_PIN = 6;
const byte LED_PIN = 13;
const long SI=2155821255;
const long DE=2155806975;
const long SU=2155811055;
const long OK=2155819215;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{ delay(1000);
 pinMode(LED_PIN,OUTPUT);
 digitalWrite(LED_PIN,LOW);
 Serial.begin(9600);
 irrecv.enableIRIn(); //Avvia ricezione
 Serial.println(ok);
 Serial.println(su,DEC);
}

void loop()
{ if (irrecv.decode(&results)) {
   Serial.println(results.value, DEC);
   if(results.value==OK) {
     digitalWrite(LED_PIN,HIGH);
     Serial.println(1);
     delay(50);
   }
   irrecv.resume();
 }  
}