Flanco de subida

Saludos, estoy controlando una lampara LED a 120VAC en mi cuarto a traves de un comando IR y un pulsador de pared para timbres con el proposito de apagar o encender la luz independientemente del control que use, es decir, si uso el control remoto enciendo la luz y si utilizo el pulsador, se apaga y viceversa. Mi problema estriba en que no he podido establecer o condicionar el boton a que solo actue si detecta un flanco de subida. El pin esta configurado como INPUT_PULLUP. Anexo fragmento de codigo para mejor comprension.

  estado_rl = digitalRead(rl);
  estado_btn = digitalRead(btn);
  if (estado_btn == LOW) //Lectura del botón
  {
    delay(250);
    estado_btn = LOW;
  }
  if  ((estado_rl == 1) && (estado_btn == 0)) //Botón y relé
  {
    digitalWrite(rl, 0);
  }
  else if ((estado_rl == 0) && (estado_btn == 0))
  {
    digitalWrite(rl, 1);
  }

  if  ((estado_rl == 0) && (valorIR.value == power)) //Botón y control
  {
    digitalWrite(rl, 1);
    valorIR.value = 0;
  }
  if  ((estado_rl == 1) && (valorIR.value == power))
  {
    digitalWrite(rl, 0);
    valorIR.value = 0;
  }
}

Ya he intentado varias opciones modificando el código. Espero que pueda alguien orientarme si tengpo algun error. Gracias

No he entendido muy bien que como quieres condicionar la activación de la bombilla, pero aquí te dejo el código para detectar flancos de subida y/o bajada, espero que te sea de ayuda:

int estado_rl, estado_rl_Ant;
int Entrada_Rele = 2;       // Nº de entrada donde está conectado el relé

void setup() {
  Serial.begin(9600);
  pinMode(Entrada_Rele, INPUT_PULLUP);
}

void loop()
{
 
  estado_rl = digitalRead(Entrada_Rele);
  if (estado_rl == 1 && estado_rl_Ant == 0)
  {
    Serial.println("Detectado flanco de SUBIDA entrada relé");
    //  Escribir aquí el código con la acción a realizar cuando se detecta un flanco de SUBIDA en la entrada del relé.
  }
  if (estado_rl == 0 && estado_rl_Ant == 1)
  {
    Serial.println("Detectado flanco de BAJADA entrada relé");
    //  Escribir aquí el código con la acción a realizar cuando se detecta un flanco de BAJADA  en la entrada del relé.
  }
  estado_rl_Ant = estado_rl;
}