Acionar TV pelo controle da TV a cabo.

olá.
Quero ligar minha TV pelo controle remoto da TV a cabo.
Estou com esse código.
#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();// Receive the next value
}
if (results.value == 0xC2E2807F) {
for (int i = 0; i < 1; i++) {
irsend.sendNEC(0xC2E2F40B, 32); // Sony TV power code
delay(40);
}
}
}

Ele reconhece o botão do controle e faz o IR enviar o sinal para ligar a TV mas fica mandando o sinal direto não para, e só consigo ler uma vez o receptor de IR.
Como faço para isso funcionar.
Obrigado.

Tente este:

#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
     irrecv.resume();// Receive the next value
 }
  if (results.value == 0xC2E2807F) {
      irsend.sendNEC(0xC2E2F40B, 32); // Sony TV power code      
      irrecv.resume();// Receive the next value
  }
}